R: Come passare un elenco di espressioni di selezione (stringhe in questo caso) alla funzione sottoinsieme?

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

  •  25-09-2019
  •  | 
  •  

Domanda

Ecco alcuni dati esempio:

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

Il che posso tirare fuori selettivi file singole utilizzando sottoinsieme:

> subset (data, series == "1a")
  series reading
1     1a     0.1

e tirare fuori più righe utilizzando una logica OR

> subset (data, series == "1a" | series  == "1e")
  series reading
1     1a     0.1
3     1e     0.6

Ma se ho una lunga lista di espressioni serie, questo diventa davvero fastidioso all'ingresso, quindi preferisco definirli in un modo migliore, qualcosa di simile a questo:

series_you_want = c("1a", "1e")  (although even this sucks a little)

ed essere in grado di fare qualcosa di simile,

subset (data, series == series_you_want)

È possibile che questo, ovviamente, non funziona, solo che non sono sicuro di quello che il modo migliore per farlo è?

È stato utile?

Soluzione

Probabilmente si desidera l'operatore %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) 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top