В документации 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)
Возможно, я сделал что-то очевидно ужасно неправильное, но результат этого меня довольно расстраивает. Так может ли кто-нибудь объяснить мне, почему во всех вышеупомянутых вызовах внешней функции
я получаю следующий результат:
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
Как я уже сказал: кажется, что документы предупреждают об этом, но я не понимаю, почему это это так.