Ответ 1
Я понимаю, что вы имеете в виду. FAQ 1.6 help? Кроме того, было несколько потоков в datatable-help об использовании выражений quote() - ed в data.table.
В своей работе я часто ссылаюсь на списки переменных как на один вектор символов.
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))]
будет.
Я не зацикливаюсь, так как у меня есть способы справиться с этим - я просто хочу знать, как лучше всего с этим работать, прежде чем я подниму вредные привычки!
Я понимаю, что вы имеете в виду. FAQ 1.6 help? Кроме того, было несколько потоков в datatable-help об использовании выражений quote() - ed в data.table.
это то, что вы хотите сделать?
> subset(A, select=vecvar[1:2])
var1 var2
[1,] 1 11
[2,] 2 12
[3,] 3 13
[4,] 4 14
[5,] 5 15
[6,] 6 16
[7,] 7 17
[8,] 8 18
[9,] 9 19
[10,] 10 20