在我的工作中,我经常将变量列表称为一个字符向量。
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有帮助吗?此外,datatable上还有一些线程,关于在data.table中使用quote()-ed表达式的帮助。
关于r - 数据表和特征向量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5435238/