R: Comment passer une liste d'expressions de sélection (chaînes dans ce cas) à la fonction de sous-ensemble?
-
25-09-2019 - |
Question
Voici quelques exemples de données:
data = data.frame(series = c("1a", "1b", "1e"), reading = c(0.1, 0.4, 0.6))
> data
series reading
1 1a 0.1
2 1b 0.4
3 1e 0.6
Ce que je peux tirer des lignes simples sélectifs en utilisant sous-ensemble:
> subset (data, series == "1a")
series reading
1 1a 0.1
Et tirer plusieurs lignes à l'aide d'une logique OU
> subset (data, series == "1a" | series == "1e")
series reading
1 1a 0.1
3 1e 0.6
Mais si j'ai une longue liste d'expressions de la série, cela devient vraiment gênant à l'entrée, donc je préfère les définir dans une meilleure façon, quelque chose comme ceci:
series_you_want = c("1a", "1e") (although even this sucks a little)
et être en mesure de faire quelque chose comme ça,
subset (data, series == series_you_want)
Ce qui précède échoue évidemment, je ne suis pas sûr de ce que la meilleure façon de le faire est?
La solution
Vous voulez probablement l'opérateur %in%
> dat <- data.frame(series = c("1a", "1b", "1e"), reading = c(0.1, 0.4, 0.6))
> series_you_want <- c("1a", "1e")
> subset(dat, series %in% series_you_want)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow