121 votes

Filtrage d'un bloc 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 n'en veux pas. En fin de compte, j'essaie de filtrer tous les individus dont la colonne Boisson est « eau ».

252voto

adamleerich Points 1722

La commande de sous-ensemble n'est pas nécessaire. Utilisez simplement l'indexation des blocs de données

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

Lire l'avertissement de ?subset

Il s'agit d'une fonction pratique destinée à être utilisée de manière interactive. Pour programmation, il est préférable d'utiliser les fonctions de sous-réglage standard comme '[', et en particulier l'évaluation non standard de l'argument « sous-ensemble » peut avoir des conséquences imprévues.

84voto

Dave Kincaid Points 727

Essaye ça:

 subset(studentdata, Drink=='water')

ça devrait le faire.

45voto

rrs Points 1552

Je pensais mettre à jour cela avec une solution dplyr

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X