Problema
Queremos filtrar múltiples valores en una columna en R. En nuestro ejemplo, queremos filtrar las filas que contengan la cadena de texto Tom o Lynn en la columna name.
Ejemplo
days name
1 88 Lynn
2 11 Tom
3 2 Chris
4 5 Lisa
5 22 Kyla
6 1 Tom
7 222 Lynn
8 2 Lynn
df <-
data.frame(
days = c(88, 11, 2, 5, 22, 1, 222, 2),
name = c("Lynn", "Tom", "Chris", "Lisa", "Kyla", "Tom", "Lynn", "Lynn")
)
Solución
df[df$name %in% c("Tom", "Lynn"), ] # or
target <- c("Tom", "Lynn")
df[df$name %in% target, ]
days name
1 88 Lynn
2 11 Tom
6 1 Tom
7 222 Lynn
8 2 Lynn
library(dplyr)
filter(df, name %in% c("Tom", "Lynn")) # or
target <- c("Tom", "Lynn")
filter(df, name %in% target)
library(data.table)
DT <- data.table(df)
DT[name %in% target]
library(sqldf)
# Dos alternativas:
sqldf('SELECT *
FROM df
WHERE name = "Tom" OR name = "Lynn"')
sqldf('SELECT *
FROM df
WHERE name IN ("Tom", "Lynn")')
Entradas relacionadas
Referencias
No hay comentarios:
Publicar un comentario