R: Como passar em uma lista de expressões de seleção (strings neste caso) para a função de subconjunto?
-
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?
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