在我的工作中,我經常將變量列表稱爲一個字符向量。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