在我的工作中,我经常将变量列表称为一个字符向量。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))]
会。
我没有被卡住,因为我有办法处理它 - 我只是想知道用什么最好的方式来处理这个问题,在我捡起坏习惯之前!
嗨 - 感谢您的回复,并对此评论中的延迟感到抱歉!是的,quote() - 表达式有可能提供帮助;但是我无法在字符向量和data.table中使用的quote()ed表达式之间建立一座桥梁。我猜这是可行的。如果是这样,它的确会解决我的问题! – crayola 2011-04-02 08:33:44
也许?解析(文本= ...)。 – 2011-04-04 17:24:42
与@crayola具有完全相同的问题。不幸的是,我无法看到特征向量和引用之间的brigde。解析(text =)不会帮助我。任何人都可以帮助一个最小的例子? – 2015-04-24 14:47:21