【发布时间】:2017-07-13 07:42:14
【问题描述】:
我有一个向量:
as <- c(1,2,3,4,5,9)
我需要提取向量中的第一个连续序列,从索引 1 开始,输出如下:
1 2 3 4 5
是否有这样做的智能功能,或者我必须做一些不那么优雅的事情:
a <- c(1,2,3,4,5,9)
is_continunous <- c()
for (i in 1:length(a)) {
if(a[i+1] - a[i] == 1) {
is_continunous <- c(is_continunous, i)
} else {
break
}
}
continunous_numbers <- c()
if(is_continunous[1] == 1) {
is_continunous <- c(is_continunous, length(is_continunous)+1)
continunous_numbers <- a[is_continunous]
}
它可以解决问题,但我希望有一个函数可以做到这一点。
【问题讨论】:
-
@Sotos 如果输入是
as <- c(4,3,1,2,3,4,5,9)呢? -
@zx8754 是的......这似乎太容易了:)
-
可能类似于
d1<- which(diff(as) == 1); as[c(d1, d1[length(d1)]+1)]? -
@Sotos 可能会作为答案发布,但感觉这是一个骗局。
-
@Cath 这就是我没有发布答案的原因。我想既然OP澄清了,那我应该回答它......?
标签: r indexing continuous