2014-07-15 1 views
0

나는 이와 같은 파일이 있습니다.R에있는 파일의 일부 행에있는 열의 동일한 값 제거

1 3 
1 2 
1 10 
1 5 
**5 5** 
6 7 
8 9 
4 6 
1 2 
**10 10** 
...... 

파일에 수천 개의 행이 있습니다. 나는 알고 싶었다. 어떻게 R의 열에 같은 값을 포함하는 행을 제거 할 수 있는가? (5 행을 포함하는 행과 10을 포함하는 행? 10)? 중복 열이나 중복 행을 제거하는 방법을 알고 있지만,이를 선택적으로 제거하는 방법은 무엇입니까? 감사. :)

+0

'DAT [DAT [1] = DAT [2]!] '를해야 –

답변

2

내가 작은 데이터 프레임, 인덱싱 예를 들어 이런 짓을 했을까 :

myDf <- data.frame(a=c(3,5,8,6,9,4,3), b=c(3,3,5,8,9,6,4)) 
myDf <- myDf[myDf$a != myDf$b,] 
+0

감사합니다. 그것은 완벽하게 작동했습니다. :) – user3797829

0

는이 같은 도우미 함수 작성 고려할 것 : 기본적으로

indicator <- function(indf) { 
    rowSums(vapply(indf, function(x) x == indf[, 1], 
       logical(nrow(indf)))) == ncol(indf) 
} 

을, 함수는 각 열을 비교 data.frame의 첫 번째 열이 data.frame 인 경우 rowSumsdata.frame의 열 수와 동일한 지 확인합니다.

기본적으로 data.frame의 서브 세트로 사용할 수있는 논리 벡터를 생성합니다.

예 :

mydf <- data.frame(a=c(3,5,8,6,9,4,3), 
        b=c(3,3,5,8,9,6,4), 
        c=c(3,4,5,6,9,7,2)) 

indicator(mydf) 
# [1] TRUE FALSE FALSE FALSE TRUE FALSE FALSE 

mydf[!indicator(mydf), ] 
# a b c 
# 2 5 3 4 
# 3 8 5 5 
# 4 6 8 6 
# 6 4 6 7 
# 7 3 4 2 
관련 문제