2012-12-07 3 views
11

PHP에 대해 similar question이 있지만 R과 공동으로 문제를 해결할 수 없습니다.모든 중복을 제거하여 데이터 프레임에 NONE이 남아 있지 않게하려면 어떻게합니까?

필자는이 행이 10 행 50 열이며, 일부 행은 절대적으로 동일합니다. 만약 내가 그것을 고유하게 사용한다면, 나는 한 줄씩 - "type"이라고 말하지만 실제로는 한 번만 나타나는 행만 얻는 것이 좋습니다. 아무도 내가 이것을 어떻게 달성 할 수 있는지 안다?

클러스터 및 히트 맵을 수동으로 정렬 할 수 있지만 위에 언급 한 것보다 더 큰 데이터 프레임이 있습니다 (최대 100 개의 행). 약간 까다로운 부분이 있습니다.

답변

33

이 한 번만 표시 행을 추출합니다 (데이터 프레임을 가정은 df라는) :

df[!(duplicated(df) | duplicated(df, fromLast = TRUE)), ] 

그것이 작동 방법 :이 기능을 duplicated 테스트 라인이 적어도 두 번째 시간을 표시할지 여부를 1 번 라인에서 시작. 인수 fromLast = TRUE이 사용되면 함수는 마지막 행에서 시작합니다.

양쪽 부울 결과는 | (논리 '또는')과 결합되어 두 번 이상 나타나는 모든 행을 나타내는 새로운 벡터로 결합됩니다. 이 결과는 !을 사용하여 무효화되므로 한 번만 나타나는 행을 나타내는 부울 벡터가 작성됩니다.