我尝试用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。我查看了this和this,尝试了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)
,结果也不好。谢谢你的帮助!