Approccio 1Quali sono i vantaggi di definire e chiamare una funzione all'interno di un'altra funzione in R?
f1 <- function(x)
{
# Do calculation xyz ....
f2 <- function(y)
{
# Do stuff...
return(some_object)
}
return(f2(x))
}
Approach 2
f2 <- function(y)
{
# Do stuff...
return(some_object)
}
f3 <- function(x)
{
# Do calculation xyz ....
return(f2(x))
}
assumere f1
e f3
sia fare gli stessi calcoli e dare lo stesso risultato.
Esistono significativi vantaggi nell'utilizzo di approccio 1, chiamando f1()
, vs approccio 2, chiamando f3()
?
è un certo approccio più favorevole:
grandi quantità di dati viene passato in e/o fuori
f2
?La velocità è un grosso problema. Per esempio.
f1
of3
vengono richiamati ripetutamente nelle simulazioni.
(Approccio 1 sembra comune in confezioni, definente al suo interno un altro)
Un vantaggio di utilizzare l'approccio f1
è che f2
non esisterà fuori f1
volta f1
abbia finito di essere chiamato (e f2
è solo chiamato in f1
o f3
).