Подход 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).