当前位置:  开发笔记 > 编程语言 > 正文

在R中嵌套操作.有更优雅的方式吗?

如何解决《在R中嵌套操作.有更优雅的方式吗?》经验,为你挑选了1个好方法。

我正在R中进行这种递归操作(卷积),只需将一个函数嵌入到另一个函数中就像俄罗斯玩偶一样.问题是,是否有更优雅的方式来做到这一点.

首先,肯定有更好的方法来设置以下输入向量:

ones =   c(1, 1, 1, 1, 1, 1)
twos =   c(1, 0, 1, 0, 1, 0)
threes = c(1, 0, 0, 1, 0, 0)
fours =  c(1, 0, 0, 0, 1, 0)

实际的是:

round(convolve(convolve(convolve(ones, rev(twos), type="open"), rev(threes), type="open"), rev(fours), type="open")) [1] 1 1 2 3 5 6 6 8 8 8 6 6 5 3 2 1 1 0 0 0 0



1> Aurèle..:
library(purrr)
data <- list(ones, twos, threes, fours)
round(reduce(data, ~ convolve(.x, rev(.y), type = "open")))

你可以用base实现同样的目标Reduce():

round(Reduce(f = function(x, y) convolve(x, rev(y), type = "open"), x = data))

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有