r - Julia - 相当于 R 中的递归 sapply 函数

标签 r recursion julia

我在 R 中有一个函数(下面的 onestep),它将向量 v 作为参数,并返回一个新的向量 v 作为输出这是输入向量的函数。然后,我迭代此函数 niter 次,并在另一个函数 iterate 中保留每次迭代的输出向量(它们的长度并不相同,有时也可能最终长度为 0) > 如下(最小示例):

onestep = function (v) c(v,2*v)
iterate = function (v, niter) sapply(1:niter, function (iter) {v <<- onestep(v)
                                                               return(v) } )

示例:

v=c(1,2,3)
iterate(v,3) 

[[1]]
[1] 1 2 3 2 4 6

[[2]]
 [1]  1  2  3  2  4  6  2  4  6  4  8 12

[[3]]
 [1]  1  2  3  2  4  6  2  4  6  4  8 12  2  4  6  4  8 12  4  8 12  8 16 24

我想知道什么是一种紧凑且惯用的方法来执行这样一个返回 Julia 中所有中间结果的递归函数?有什么想法吗? (抱歉,如果这很微不足道,但我是 Julia 的新手)

最佳答案

不确定紧凑和惯用的方式,但这就是我要做的

onestep(v) = [v 2*v]

function iterate(v, niter)
    Results = Array(Array, niter)
    Results[1] = onestep(v)
    for idx = 2:niter
        Results[idx] = onestep(Results[idx - 1])
    end
    Results
end

v = [1 2 3]
iterate(v, 3)

关于r - Julia - 相当于 R 中的递归 sapply 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38405912/

相关文章:

r - 编辑 emmeans 箭头图的侧面文本

algorithm - 是 log(n!) = Θ(n·log(n))?

c - 带符号的递归调用函数

parallel-processing - Julia - map 功能状态

syntax - 调用 &(x,y) 按位运算符

julia - 如何在 Julia 中打印具有指定 RGB 值的文本?

html - R knitr 在表头 kable() 中添加换行符

r - 有没有办法使用 RStudio 删除 R 脚本中的所有注释?

r - 使用stat_summary_bin在ggplot中获取摘要的水平线

go - 从函数返回的正确方法是什么?