2016-08-19 3 views
-1

내가 누구의 인덱스 행의 목록에없는 데이터 프레임의 행을 선택하려면, 예를 들면 : 인덱스 목록에없는 데이터 프레임에서 행을 선택하는 방법은 무엇입니까?

split = 0.70 
train_subset <- df[sample(nrow(df), 
          size=split * nrow(df)),] 
test_subset = ? 

어떻게 DF 및 train_subset에서 test_subset을 만들 수 있습니까?

+0

예를 재현 할 수 있도록하십시오 (예 : 데이터 포함) –

+0

제 질문은 데이터를 포함 할 필요가 없다는 것만으로도 충분하다고 생각합니다. 동일한 코드가 모든 데이터 프레임에 적용될 수 있습니다. –

+0

그런 다음 재현 가능한 데이터 세트를 사용하십시오. 이 유형의 질문에 대한 재현 가능한 예를 포함해야한다는 요구 사항은 제안이 아니라 요구 사항입니다. –

답변

2
split <- 0.70 
train_rows <- sample(nrow(df), size = split * nrow(df)) 

train_subset <- df[train_rows,] 

test_subset <- df[-train_rows,] 

샘플링하려는 행을 벡터에 저장하십시오. 그런 다음이를 사용하여 교육 및 테스트 세트를 선택하십시오.

+1

나는 이것이 가장 간결하기 때문에 이것을 좋아한다. 나는 하위 집합에 대한 연산자를 잊었다. –

1

같은 행을 반복하지 않아도 되려면 replace= FALSE을 사용해야합니다.

i1 <- sample(nrow(df), size=split * nrow(df), replace = FALSE) 

그런 다음 'i1'에없는 행 순서의 값을 기준으로 두 번째 인덱스를 만듭니다.

i2 <- setdiff(seq_len(nrow(df), i1) 

subset 데이터 세트는 '테스트'와 '기차'데이터 세트를 만들 수 있습니다.

train_subset <- df[i1,] 
test_subset <- df[i2,] 
+1

감사합니다. setdiff 기능에 대해 알아두면 유용합니다. –

관련 문제