在R中,当想在另一个函数中使用一个/多个函数时,也许有两种方法。示例函数可以是:
方法一:
make.power <- function(n) {
pow <- function(x) {
x^n
}
pow
}
方法二:
make.power <- function(n) {
pow(n)
}
pow <- function(x) {
x^n
}
在我看来(但我不确定),如果父函数有很多子函数,第二种方法是更好的方法。
我的问题是:1)这两种方式在功能上有什么区别吗?例如,函数如何传递变量,或者子函数和父函数之间的关系等。
2)哪一个可能是 R 的首选(可能计算效率更高或结构清晰)?
如果你问的是你给出的具体例子,这个问题对我来说似乎不太宽泛。
这里的主要区别是评估n
. For 示例1,返回的函数本质上有一个硬编码的n
value.
> n = 100
> f1 = make.power(2)
> f1(2)
[1] 4
> n = 1
> f1(2)
[1] 4
实施例2不会,相反,它将依赖于全局定义n
.
> n = 1
> make.power2(2)
[1] 2
> n = 100
> make.power2(2)
[1] 1.267651e+30
随着函数变得更加复杂,范围问题也会变得更加复杂。大卫罗宾逊在评论中提供的链接是一个很好的资源。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)