R:嵌套函数
在Wolfram Mathematica中,有一个函数R:嵌套函数,r,nested,R,Nested,在Wolfram Mathematica中,有一个函数NestList[f,x,n],它通过对变量x多次应用函数f来产生长度n+1的向量输出。看 R中有类似的东西吗 执行do.call将多次进行相同的计算 示例(对用户建议的反应): 只需写一个。无论如何,这样的函数都必须循环(如果n可能变大,则不建议重新搜索) nestlist0) 包purrr?@USER_1中的res map函数我不知道该如何使用该函数。请您更正上面示例中的代码好吗?第一个参数需要是一个列表,map(list(1,2,3)
NestList[f,x,n]
,它通过对变量x
多次应用函数f
来产生长度n+1
的向量输出。看
R中有类似的东西吗
执行do.call
将多次进行相同的计算
示例(对用户建议的反应):
只需写一个。无论如何,这样的函数都必须循环(如果n可能变大,则不建议重新搜索)
nestlist0)
包purrr?@USER_1中的res map函数我不知道该如何使用该函数。请您更正上面示例中的代码好吗?第一个参数需要是一个列表,map(list(1,2,3),foo)
但是map
不会安静地做您想做的事情。罗兰的解决方案看起来不错。谢谢。我设法写了一本。但我很感兴趣的是,在我脑海中出现的任何“普通”包装中是否有这样的功能。这种功能并不是经常需要的;我很少需要递归地应用函数。
foo <- function(x) {x+1}
map(0, foo)
# [[1]]
# [1] 1
NestList <- function(f, x, n) {
stopifnot(n > 0)
res <- rep(x, n + 1)
if (n == 1L) return(res)
for (i in seq_len(n)) res[i+1] <- f(res[i])
res
}
NestList(function(x) x^2, 2, 5)
#[1] 2 4 16 256 65536 4294967296