В своей работе я часто ссылаюсь на списки переменных как на один вектор символов.
A <- data.table(var1 = 1:10, var2 = 11:20, var3 = 21:30)
vecvar <- c("var1", "var2", "var3")
По возможности я хочу использовать vecvar
, а не перечислять переменные, поскольку это делает мой код более надежным для будущих приложений в несколько разных списках переменных.
Недавно я обнаружил data.table
, и насколько мне нравится общая элегантность синтаксиса и повышение эффективности, я обнаружил, что он немного соприкасается с моим наклоном, описанным выше. Действительно, A[, vecvar]
не будет работать.
Я не знаю, как лучше всего обойти это.
A[, vecvar, with=F]
будет работать, но не всегда удобно (например, A[, list(vecvar, var1+var2), with=F]
не будет работать).
A[, sapply(vecvar, get)]
не будет работать, хотя A[, sapply(vecvar, function(x) get(x))]
будет.
Я не зацикливаюсь, так как у меня есть способы справиться с этим - я просто хочу знать, как лучше всего с этим работать, прежде чем я подниму вредные привычки!