tablas seleccionar filtrar filas eliminar datos data contar columnas columna agregar r data.table

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.

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"