在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
正如我所说的:文档似乎对此发出了警告,但我不明白为什么会这样。
https://stackoverflow.com/questions/6704536
复制相似问题