seleccionar - leer listas en r
pasar el nombre de la columna en data.table usando la variable en R (1)
Posible duplicado:
Selección / asignación variables a campos en un data.table
En el siguiente ejemplo, estoy creando una tabla de datos con el nombre de columna ''x'' y ''v''
library(''data.table'')
DT = data.table(x=c("b","b","b","a","a"),v=rnorm(5)) DT$
DT$v DT$x
Puedo acceder a los valores de la columna ''x'' de la siguiente manera:
DT[,x]
[1] "b" "b" "b" "a" "a"
Pero si quiero acceder pasando una variable, no funciona
temp="x"
DT[,temp]
[1] "x"
Habría varias columnas y tendré que seleccionar valores solo para dos de ellas. Estos nombres de columna se proporcionarán pasando a través de un módulo R.
No importa, lo tengo
Lo tengo ... debería ser
DT[,get(temp)]
Use las funciones quote () y eval () para pasar una variable a j. No necesita comillas dobles en los nombres de las columnas cuando lo hace de esta manera, porque la cadena de citas () - ed se evaluará dentro del DT []
temp <- quote(x)
DT[,eval(temp)]
# [1] "b" "b" "b" "a" "a"
Con un solo nombre de columna, el resultado es un vector. Si desea un resultado de tabla de datos o varias columnas, use el formulario de lista
temp <- quote(list(x,v))
DT[,eval(temp)]
# x v
# 1: b 1.52566586
# 2: b 0.66057253
# 3: b -1.29654641
# 4: a -1.71998260
# 5: a 0.03159933