【发布时间】:2021-04-07 19:17:14
【问题描述】:
我正在寻找将一个向量子集到没有序列号的地方。但是,如果有一个包含两个以上序号的序列,则只会删除每隔一个序号,因为删除该序号会破坏序列。
例如1,2,4,6,7 将给出 1,4,6
例如6,7,8,9 将给出 6,8
这很容易迭代,但迭代超过 10M+ 元素非常慢:
x <- c(1,2,4,6,7,8,9) # Ideal output is c(1,4,6,8)
for (i in 2:length(x)) {
if (!is.na(x[i-1])) {
if (x[i] == x[i-1]+1) {x[i] <- NA_integer_}
}
}
x[!is.na(x)]
是否有其他解决方案可以显着加快速度?
【问题讨论】:
标签: r