Альтернативный способ сделать это:

ументации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

Как я уже сказал: документы, кажется, предупреждают об этом, но я не понимаю, почему это так.

Ответы на вопрос(3)

Ваш ответ на вопрос