Sous-ensemble de plusieurs colonnes dans la R - plus élégant de code?
Je suis. un dataframe en fonction de multiples critères sur plusieurs colonnes. J'ai choisi les lignes dans le dataframe qui contiennent l'une des valeurs définies dans le vecteur "critères", l'une des trois colonnes différentes.
J'ai un code qui fonctionne, mais me demande ce que les autres (plus élégant?) moyens qui existent pour ce faire. Voici ce que j'ai fait:
criteria <-c(1:10)
subset1 <-subset(data, data[, "Col1"] %in% criteria | data[, "Col2"]
%in% criteria | data[, "Col3"] %in% criteria)
Suggestions chaleureusement accueillis. (Je suis un R débutant, donc très simples, des explications sur ce que vous suggérez sont également accueilli chaleureusement.)
OriginalL'auteur user1257313 | 2012-03-09
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr si vous avez besoin de deux
apply
appelle ici:Sauf si vous voulez faire un grand nombre de colonnes, alors il est probablement plus lisible-à-dire:
subset
met en garde contre son utilisation par programmation, car il utilise non standard d'évaluationJ'ai lu que la prudence sur la page d'aide, mais je ne sais pas ce que cela signifie. Pourquoi "non-standard d'évaluation" être un problème? Dans mon cas, je suis juste de sectionnement de données pour créer des statistiques descriptives, donc je ne pense pas "sous-ensemble", sera à l'origine de problèmes pour moi... mais dans ce cas, serait-il poser des problèmes? Merci.
OriginalL'auteur nograpes
Je suis en utilisant
DF
plutôt quedata
que dans l'exemple.Pour une ventilation de ce qui ce fait:
Faire une matrice de colonnes spécifiées, et pour chaque élément de la matrice de test si elle contient l'un des critères. Ensuite, pour chaque ligne de cette matrice, voir si l'un des éléments de ligne sont
TRUE
. Si oui, garder la ligne correspondante de l'ensemble de données initial.De travail par le biais d'un exemple:
Commencer avec les données factices:
qui ressemble
Sortir juste les colonnes d'intérêt.
Vérifier chaque entrée contre les critères
Tester si une valeur dans une ligne sont de VÉRITABLES
L'utiliser pour indexer les données d'origine image.
OriginalL'auteur Brian Diggs