R: Como passar em uma lista de expressões de seleção (strings neste caso) para a função de subconjunto?

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

  •  25-09-2019
  •  | 
  •  

Pergunta

Aqui estão alguns dados de exemplo:

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

Que posso retirar linhas únicas seletivas usando subconjunto:

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

E retirar várias linhas usando um lógico ou

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

Mas se eu tiver uma longa lista de expressões em série, isso fica realmente irritante para a entrada, então eu prefiro defini -las de uma maneira melhor, algo assim:

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

e ser capaz de fazer algo assim,

subset (data, series == series_you_want)

O acima, obviamente, falha, só não tenho certeza de qual é a melhor maneira de fazer isso?

Foi útil?

Solução

Você provavelmente quer o %in% operador

> 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) 
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top