相关疑难解决方法(0)

矢量化依赖于先前元素的产品计算?

我正在尝试加速/矢量化时间序列中的一些计算.我可以在for循环中矢量化计算,这可能取决于早期迭代的结果吗?例如:

z <- c(1,1,0,0,0,0)
zi <- 2:6
for  (i in zi) {z[i] <- ifelse (z[i-1]== 1, 1, 0) }
Run Code Online (Sandbox Code Playgroud)

使用前面步骤中更新的z [i]值:

> z
[1] 1 1 1 1 1 1
Run Code Online (Sandbox Code Playgroud)

在我的努力中矢量化这个

z <- c(1,1,0,0,0,0)
z[zi] <- ifelse( z[zi-1] == 1, 1, 0)
Run Code Online (Sandbox Code Playgroud)

逐个元素的操作不使用操作中更新的结果:

> z
[1] 1 1 1 0 0 0
Run Code Online (Sandbox Code Playgroud)

因此,这种向量化操作以"并行"而非迭代方式运行.有没有办法我可以写/向量化这个来获得for循环的结果?

product r vectorization

20
推荐指数
3
解决办法
3003
查看次数

标签 统计

product ×1

r ×1

vectorization ×1