filtrar - seleccionar filas en r
¿Cómo seleccionar columnas en data.table usando un vector de caracteres de ciertos nombres de columna? (1)
Podemos usar with=FALSE
para hacer la misma operación que en data.frame
mtcarsDT[, myVector, with=FALSE]
Según ?data.table
with: Por defecto, ''with = TRUE'' y ''j'' se evalúan dentro del marco de ''x''; Los nombres de columna se pueden utilizar como variables. Cuando ''con = FALSO'' ''j'' es un vector de caracteres de nombres de columna o un vector numérico de posiciones de columna para seleccionar, y el valor devuelto es siempre una ''tabla de datos''. ''with = FALSE'' suele ser útil en ''data.table'' para seleccionar columnas dinámicamente.
Esta pregunta ya tiene una respuesta aquí:
- Seleccionar subconjunto de columnas en data.table R [duplicado] 7 respuestas
- Seleccionando un subconjunto de columnas en una tabla de datos. 4 respuestas
Estoy tratando de seleccionar esas columnas en una tabla de datos cuyo nombre aparece en mi vector de caracteres. La operación funciona en un cuadro de datos puro, pero no funciona en una tabla de datos. Aquí hay un ejemplo reproducible.
> names(mtcars)
[1] "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear"
[11] "carb"
> myVector <- c(''disp'', ''hp'', ''wt'')
> head(mtcars[, myVector])
disp hp wt
Mazda RX4 160 110 2.620
Mazda RX4 Wag 160 110 2.875
Datsun 710 108 93 2.320
Hornet 4 Drive 258 110 3.215
Hornet Sportabout 360 175 3.440
Valiant 225 105 3.460
Acabo de hacer un vector que incluye disp
, hp
y wt
y seleccioné las columnas correspondientes en mi data.frame usando ese vector. Ahora hagamos un objeto data.table desde mi data.frame e intentemos hacer la misma operación.
> library(data.table)
> mtcarsDT <- data.table(mtcars)
> mtcarsDT[, myVector]
[1] "disp" "hp" "wt"