【发布时间】:2011-10-05 23:32:21
【问题描述】:
在sapply 和replicate 的文档中有关于使用... 的警告
现在,我可以接受它,但想了解它背后的原因。所以我创建了这个人为的小例子:
innerfunction<-function(x, extrapar1=0, extrapar2=extrapar1)
{
cat("x:", x, ", xp1:", extrapar1, ", xp2:", extrapar2, "\n")
}
middlefunction<-function(x,...)
{
innerfunction(x,...)
}
outerfunction<-function(x, ...)
{
cat("Run middle function:\n")
replicate(2, middlefunction(x,...))
cat("Run inner function:\n")
replicate(2, innerfunction(x,...))
}
outerfunction(1,2,3)
outerfunction(1,extrapar1=2,3)
outerfunction(1,extrapar1=2,extrapar2=3)
也许我做了一些明显非常糟糕的事情,但我发现这样做的结果相当令人沮丧。那么任何人都可以向我解释为什么在上述所有对outerfunction 的调用中,我得到了这个输出:
Run middle function:
x: 1 , xp1: 0 , xp2: 0
x: 1 , xp1: 0 , xp2: 0
Run inner function:
x: 1 , xp1: 0 , xp2: 0
x: 1 , xp1: 0 , xp2: 0
就像我说的:文档似乎对此发出警告,但我不明白为什么会这样。
【问题讨论】:
标签: r ellipsis replicate sapply