web-dev-qa-db-ja.com

列の値でデータフレームをフィルタリングする

データセットLearnBayesを使用しています。実際のデータを見たい人のために:

install.packages('LearnBayes')

列の値に基づいて行を除外しようとしています。たとえば、列の値が "water"の場合、その行が必要です。列の値が "milk"の場合、それは望ましくありません。最終的に、私は飲み物の列が「水」であるすべての個人を除外しようとしています。

90
user722224

サブセットコマンドは必要ありません。データフレームインデックスを使うだけ

studentdata[studentdata$Drink == 'water',]

?subsetからの警告を読んでください

これは対話的に使うことを意図した便利な機能です。プログラミングのためには、 '['のような標準的なサブセット化関数を使用するのがより良いです、そして特に、引数 'サブセット'の非標準的な評価は予期せぬ結果を招く可能性があります。

197
adamleerich

これを試して:

subset(studentdata, Drink=='water')

それはそれをするべきです。

65
Dave Kincaid

これをdplyrソリューションで更新したいと思いました

library(dplyr)    
filter(studentdata, Drink == "water")
33
rrs