我想确定一个序列中是否包含任何间隙或不规则的步骤?不确定这是否是正确的表述方式,很有可能这是重复的(但我找不到一个好的问题)。
以下的has_gap
函数给出了我正确的结果,但似乎有点笨拙?也许有一些内置的功能我还没有发现?
x1 <- c(1:5, 7:10)
x2 <- 1:10
x3 <- seq(1, 10, by = 2)
x4 <- c(seq(1, 6, by = 2), 6, seq(7, 10, by = 2))
has_gap <- function(vec) length(unique(diff(vec))) != 1
vecs <- list(x1, x2, x3, x4)
sapply(vecs, has_gap)
# [1] TRUE FALSE FALSE TRUE
all(diff(x1) == 1)
- Gopalax1
和x2
可以正确工作,但对于x3
不行。 - Adam Birenbaum!!diff(range(diff(x)))
,另外一个是var(diff(x)) > 0
。 - G. Grothendieck