GNU R,subset(),&&演算子の使用で結果が変に
追記:解決しました(ref: http://d.hatena.ne.jp/gnarl/20090107/1231336755 )
> subset(data.frame(a=c(10,20),b=c(20,30))) a b 1 10 20 2 20 30
式を指定しなければ渡したデータセットがそのまま返る
> subset(data.frame(a=c(10,20),b=c(20,30)),b > 20) a b 2 20 30
bが20以上の行が返る
> subset(data.frame(a=c(10,20),b=c(20,30)),b > 20 && a < 40) [1] a b <0 rows> (or 0-length row.names)
????
> subset(data.frame(a=c(10,20),b=c(20,30)),b > 20 & a < 40) a b 2 20 30
????
> a<-20 > b<-30 > b > 20 && a < 40 [1] TRUE > b > 20 & a < 40 [1] TRUE
なのになー。式を全部評価するか偽とわかった時点でうちきるかの差しかないと思ったんだが、うーむ
意味はよくわからないけど、&を使っておいたほうが無難だということはわかった。
参考までにバージョン。2.7.0、2.8.1で試したけど同じでした
> version _ platform i386-pc-mingw32 arch i386 os mingw32 system i386, mingw32 status major 2 minor 7.0 year 2008 month 04 day 22 svn rev 45424 language R version.string R version 2.7.0 (2008-04-22)
> version _ platform i386-pc-mingw32 arch i386 os mingw32 system i386, mingw32 status major 2 minor 8.1 year 2008 month 12 day 22 svn rev 47281 language R version.string R version 2.8.1 (2008-12-22)