在我的工作中,我经常将变量列表称为一个字符向量。

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/

10-12 20:47