En mi trabajo, a menudo me refiero a listas de variables como un solo vector de caracteres.data.table y vectores de caracteres
A <- data.table(var1 = 1:10, var2 = 11:20, var3 = 21:30)
vecvar <- c("var1", "var2", "var3")
Siempre que sea posible, Quiero usar vecvar
en lugar de enumerar las variables, ya que esto hace que el código más robusto para aplicaciones futuras a ligeramente diferentes listas de variables.
Recientemente descubrí data.table
, y por mucho que me guste la elegancia general de la sintaxis y las ganancias de eficiencia, encuentro que choca un poco con mi inclinación descrita anteriormente. De hecho, A[, vecvar]
no funcionará.
No estoy seguro de la mejor manera de evitar esto.
A[, vecvar, with=F]
funcionará, pero no siempre es conveniente (por ejemplo, A[, list(vecvar, var1+var2), with=F]
no funcionará).
A[, sapply(vecvar, get)]
no funcionará, aunque A[, sapply(vecvar, function(x) get(x))]
lo hará.
No estoy atascado, ya que tengo maneras de manejarlo, solo quiero saber cuál es la mejor manera de trabajar con esto, ¡antes de adquirir malos hábitos!
Hola, gracias por la respuesta, y disculpas por la demora en este comentario. Sí, quote() - las expresiones ed tienen el potencial de ayudar; pero falta un puente que no pude construir entre un vector de caracteres, y una expresión editada (citable) utilizable en data.table. Supongo que esto es factible; si es así, de hecho resolvería mis problemas! – crayola
Quizás? Parse (text = ...). –
Tiene exactamente el mismo problema que @crayola. Desafortunadamente no puedo ver el puente entre un vector de charater y una cita. El análisis (texto =) no me ayudó. ¿Alguien podría ayudar con un ejemplo mínimo? –