2011-12-06 5 views
12

ID를 기반으로 행을 선택하려고했습니다. 예를 들어, test이라는 데이터 프레임에서 ID 201은 6 행의 데이터를 가지며 ID 202는 6 행의 데이터를 가지며 203, 204 등 .....여러 행을 선택하여 ID에서 컨디셔닝 R

이제 201과 202 데이터 집합에서, 그래서 그것을 12 행을 모두 있어야합니다. 그러나

out <- test[test$ID==c(201,202), ] 
out <- subset(test, ID==c(201,202)) 

는 사람이 내가 R에서이 작업을 수행 할 수있는 방법이 몇 가지 제안을 제공 할 수 행 한 세 가지 (201)와 세 (202), 행 3, 5, 8 10 12

의 행을 반환?

+3

왜 당신이했는지 궁금해하는 경우, '=='는 요소별로 비교하고 하나의 벡터가 다 소모되면 그것을 재활용합니다. 그래서 ID 칼럼을 201과 202로 번갈아 가며 검사했다.'% in %'대답이 가장 좋았지 만'subset (test, ID == 201 | ID == 202)'를 사용했을 수도있다. – Gregor

답변

21

%in%이 아니라 ==이 필요합니다.

out <- test[test$ID %in% c(201, 202), ] 
out <- subset(test, ID %in% c(201, 202)) 
+0

정말 고마워. . – Fred

+0

@MattDowle 이것은 data.table-intro 비 네트 또는 FAQ에 대한 훌륭한 후보입니다! 지난 주말에 나는이 땅 광산을 분명히 밟았습니다. –

관련 문제