R: Comment passer une liste d'expressions de sélection (chaînes dans ce cas) à la fonction de sous-ensemble?

StackOverflow https://stackoverflow.com/questions/2609647

  •  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?

Était-ce utile?

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
scroll top