2

私はRが初めてで、サブセット化について学んでいます。テーブルがあり、テーブルのサブセットのサイズを取得しようとしています。私の問題は、2 つの異なる方法を試すと、2 つの異なる答えが得られることです。RMS が 5 で BDS が 2 のすべての行を選択しようとしているテーブル「dat」の場合:

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

とは違う答えをくれます

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

2 番目は正しいですが、なぜこれらが異なるのか、なぜ最初の答えが間違っているのか説明してもらえますか?

ありがとう

4

2 に答える 2

5

その理由は、これら2つの方法によるNA値の異なる扱いにあるに違いありません。データフレームからNAの行を削除すると、同じ結果が得られるはずです。

dat_clean = na.omit(dat)
于 2013-02-01T04:52:13.687 に答える
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
于 2013-02-01T04:18:20.230 に答える