web-dev-qa-db-fra.com

Filtrer un cadre de données par valeurs dans une colonne

Je travaille avec le jeu de données LearnBayes. Pour ceux qui veulent voir les données réelles:

install.packages('LearnBayes')

J'essaie de filtrer les lignes en fonction de la valeur dans les colonnes. Par exemple, si la valeur de la colonne est "eau", alors je veux cette ligne. Si la valeur de la colonne est "lait", alors je ne le veux pas. En fin de compte, j'essaie de filtrer toutes les personnes dont la colonne Boisson est "de l'eau".

91
user722224

La commande de sous-ensemble n'est pas nécessaire. Il suffit d'utiliser l'indexation de trames de données

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

Lisez l'avertissement de ?subset

C'est une fonction pratique destinée à être utilisée de manière interactive. Pour la programmation, il est préférable d’utiliser les fonctions de sous-ensemble standard comme "[", et en particulier l’évaluation non standard de l’argument "sous-ensemble" peut avoir des conséquences inattendues.

199
adamleerich

Essaye ça:

subset(studentdata, Drink=='water')

ça devrait le faire.

66
Dave Kincaid

Je pensais mettre à jour ceci avec une solution dplyr

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