gpt4 book ai didi

r - 在 R 中定义函数内部函数的好方法

转载 作者:行者123 更新时间:2023-12-04 02:20:58 25 4
gpt4 key购买 nike

在 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的评价。 .对于 示例 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

随着功能变得越来越复杂,范围问题也将变得更加复杂。 David Robinson 在评论中提供的链接是一个很好的资源。

关于r - 在 R 中定义函数内部函数的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32255367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com