在R中通常编写自定义函数来执行给定数据集或分析所需的专门工作。例如,这些函数可能会导致重复性较低的代码,或者可以进行矢量化以提高性能。而且,函数可以调用其他函数。
想象一种情况,其中一个函数bar()
只会在另一个函数foo()
中调用。在这种情况下,最好在 bar()
或 之内创建foo()
吗?
这是一个简单的例子(可能不够精细,不足以使不同的策略有意义地区分,但你可以想象 - 或建议; - ) - 可以嵌套的复杂函数) :
# within:
foo <- function(x){
bar <- function(x){
x <- x*2
return(x)
}
x <- x+3
x <- bar(x)
return(x)
}
# outside:
bar <- function(x){
x <- x*2
return(x)
}
foo <- function(x){
x <- x+3
x <- bar(x)
return(x)
}
我想知道哪个更好,为什么? (如果“优先”对某人看起来有点模糊,这里有一些特定的标准,可能会让你更喜欢其中一个选项。我也倾向于认为一个是某些标准更可取的,而另一个更适合其他标准。)
bar()
时都会重新创建foo()
吗?