エラーメッセージを十分に読んでいません。ここで、エラーメッセージは、列を選択していないことを示しています。ただし、行の条件を指定しました。
> data[which(x>=2)]
Error in `[.data.frame`(data, which(x >= 2)) : undefined columns selected
すべての列を返したいので、(すべての列を返すことを示す)コンマを入れるだけで、すべて設定されているはずです。
> data[which(x>=2), ] # if x is in your workspace
x y
1 5 1
3 3 3
4 2 4
5 4 2
> ## with(data, data[x >= 2, ] # if x is not in your workspace
data.frame
注意すべきもう1つのポイントは次のとおりです。次のように直接作成できます。
data <- data.frame(x = c(5,1,3,2,4), y = c(1,5,3,4,2))
これが私がこれを提案する理由です。まず、ワークスペースに不要なオブジェクトはありません。第二に、あなたは何かが機能していないのに機能していると考えることに騙されません。あなたは次のように書いています:「私はx値のアドレスを使用して見つけることができることを知っていますaddresses <- which(x>=2)
」。本当ですが、おそらく気づかなかったのは(したがって、この質問)、実際にはdata.frame
ワークスペースの「x」ベクトルではなく「x」にアクセスしているということです。