【发布时间】:2017-08-21 21:09:07
【问题描述】:
给定一个二进制值向量out_2,下面的代码返回一个向量
与out_2 的长度相同,称为out_1。
out_1 的条目计数在下一次符号切换之前留在out_2 中的连续相似项的数量。如果你打印最后的cbind(),我想你会明白我的意思。
library(zoo)
n = 10
out_2 = rep(NA, n)
out_2[sample.int(n, 3)] = sample(c(-1, 1), 3, replace = TRUE)
out_2 = zoo::na.locf(out_2)
out_1 = out_2
out_1[length(out_2)] = 1
for(i in (length(out_2) - 1):1){
out_1[i] = ifelse(out_2[i + 1] == out_2[i], out_1[i + 1] + 1, 1)
}
cbind(out_1, out_2)
我想知道是否有一种单行矢量化方式从 out_2 获取 out_1(即矢量化显式 for 循环)?
【问题讨论】:
标签: r vectorization