Подход 1
f1 <- function(x)
{
# Do calculation xyz ....
f2 <- function(y)
{
# Do stuff...
return(some_object)
}
return(f2(x))
}
Подход 2
f2 <- function(y)
{
# Do stuff...
return(some_object)
}
f3 <- function(x)
{
# Do calculation xyz ....
return(f2(x))
}
Предположим, что f1
и f3
выполняют одинаковые вычисления и дают тот же результат.
Есть ли существенные преимущества в использовании подхода 1, вызывающего f1()
, vs подход 2, вызывающий f3()
?
Является ли определенный подход более благоприятным, если:
-
большие данные передаются и/или из
f2
? -
Скорость - большая проблема. Например.
f1
илиf3
неоднократно вызываются в симуляциях.
(Подход 1 кажется общим в пакетах, определяющим внутри другого)
Одно из преимуществ использования подхода f1
заключается в том, что f2
не будет существовать вне f1
после того, как будет завершен вызов f1
(и f2
вызывается только в f1
или f3
).