gpt4 book ai didi

r - 在 R 中,是否有用于将函数迭代 n 次的内置函数?

转载 作者:行者123 更新时间:2023-12-04 11:54:13 25 4
gpt4 key购买 nike

假设我有一个变量x 和一个函数f。我想对 x 执行 f,然后对结果再次执行 n 次。

我为此构建了一个简单的函数:

iterate <- function(x, f, n) {

assertthat::assert_that(n >= 0)

if (n > 0) {

for (i in 1:n) {

x <- f(x)
}
}

x
}

其工作原理如下:

iterate(256, f = sqrt, n = 3)

这已经内置到 R 中了吗?

最佳答案

您可以使用函数式编程方法,使用 functional 包中的 ReduceCompose 来做到这一点。这个想法是创建您想要的函数列表并使用 Compose 将它们链接起来。之后您只需将此函数应用于 x

x = 256
n = 3
f = sqrt

library(functional)

Reduce(Compose, replicate(n, f))(x)
#[1] 2

或者使用 magrittr 中的 freduce:

library(magrittr)

freduce(x, replicate(n, f))
#[1] 2

关于r - 在 R 中,是否有用于将函数迭代 n 次的内置函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30344787/

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