GNU R,subset()のsubset引数の意味
前回の疑問について。
コメントで指摘されて気づいたんだけど、subsetに渡す引数について誤解していたようだ。
subset(data,col1 == 1)
第二引数が行ごとに評価されてフィルタに使われるんだろうと思っていた(Rは遅延評価なのでそういう芸当もふつうにできそうだし……)が、実際にはdataのcol1列というベクトルに対して==演算子を適用して真偽値のベクトルを返すものだったという。
第二引数はdataがattachされた文脈で評価されて、
subset(data,data$col1 == 1)
と同等になり、最終的には
subset(data,c(TRUE,FALSE,TRUE,TRUE,...))
と同等。なるほどなー。