我对这个功能不起作用并不感到惊讶,但我不太明白为什么。
computeMeans <- function(data,dv,fun) {
x <- with(data,aggregate(dv,
list(
method=method,
hypo=hypothesis,
pre.group=pre.group,
pre.smooth=pre.smooth
),
fun ) )
return(x)
}
computeMeans(df.basic,dprime,mean)
其中
df.basic
是一个包含 method
、 hypothesis
等因子和几个因变量的数据帧(我用 dv
参数 dprime 指定了一个)。我有多个因变量和几个数据框,它们的形式都相同,所以我想编写这个小函数来保持“简单”。我得到的错误是:
Error in aggregate(dv, list(method = method, hypo = hypothesis,
pre.group = pre.group, :
object 'dprime' not found
但是 dprime 确实存在于 df.basic 中,它被
with()
引用。任何人都可以解释这个问题吗?谢谢!编辑:这是 R 编程语言。 http://www.r-project.org/
最佳答案
尽管 dprime
存在于 df.basic
中,但当您在 computeMeans
调用它时,它不知道您指的是什么,除非您明确引用它。
computeMeans(df.basic,df.basic$dprime,mean)
将工作。
关于R:将参数从包装函数传递给内部函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11729852/