2013-02-01 5 views
2

저는 R에 익숙하지 만 부분 집합에 대해 배우고 있습니다. 테이블이 있는데 테이블의 하위 집합 크기를 얻으려고합니다. 내 문제는 내가 두 가지 다른 방법을 시도 할 때 나는 두 가지 다른 대답을 얻는다. 테이블은 "DAT"나는 RMS (5) 모든 행을 선택하기 위해 노력하고있어 및 BDS는 2입니다 :R에서 데이터 프레임 부분 집합

dim(dat[(dat$RMS==5) & (dat$BDS==2),]) 

나에게

dim(subset(dat,(dat$RMS==5) & (dat$BDS==2))) 

두 번째가 정확한지는 다른 대답을 제공, 누군가 다른 이유를 설명 할 수 있을까요? 왜 첫 번째 질문이 나에게 잘못된 대답을주고 있습니까?

감사

나를 위해
+0

어두워'일부 내부 날엔 $를 사용할 필요가 없습니다 (일부 (DAT를, RMS의 == 5 BDS의 == 2)) : 사용자가 데이터 프레임에서 NA로 행을 제거하면 동일한 결과를 얻어야한다 하지만 나는 심지어 같은 결과를 얻어야한다고 생각합니다. – agstudy

+3

'dput (head (dat, 20)) '과 같이 일부 데이터를 제공하는 데 도움이 될 것입니다. – vaettchen

답변

5

이유는 두 가지 방법으로 NA 값의 다른 치료에 있어야합니다. `

dat_clean = na.omit(dat) 
2

작품 .....

> x = c(1,1,2,2,3,3) 
> y = c(4,4,5,5,6,6) 
> 
> X = data.frame(x,y) 
> 
> dim(X[X$x==1 & X$y==4,]) 
    [1] 2 2 
> 
> (X[X$x==1 & X$y==4,]) 
    x y 
1 1 4 
2 1 4 

> dim(subset(X,(X$x==1) & (X$y==4))) 
    [1] 2 2 
> subset(X,(X$x==1) & (X$y==4)) 
    x y 
1 1 4 
2 1 4 
관련 문제