将data.frame列传递给data.table

时间:2015-12-25 09:02:49

标签: r function data.table

我尝试用data.table写一个函数,这里有一个关于这个想法的例子:

d <- data.frame(x=1:6, y=6:1, z= rep(c('A', 'B', 'C'), 2))
func <- function(q){
    o <- setDT(d)[, list(maxi = max(q)), by = z]
}
func(x)

返回的错误表示无法找到对象x。我查看了thisthis,尝试了do.call和data.frame选项,结果不佳:

o <- setDT(d)[, maxi = do.call('max', list(q)), by = z]
o <- setDT(d)[, maxi = do.call('max', list(d$q)), by = z]
o <- setDT(d)[, list(maxi = max(d[,q])), by = z]

它返回&#34;未使用的参数&#34;,&#34;找不到对象&#34;或&#34;无效&#39;类型&#39; (闭幕)论证&#34;。我之前的答案是错误的还是data.table需要一些特殊的调整?为了看看这是否只发生在data.table中,我还测试了o <- aggregate(d[, q] ~ z, d, max),结果也不好。谢谢你的帮助!

0 个答案:

没有答案