R:嵌套函数

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)

在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),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