我想确定序列是否包含任何间隙或不规则的步骤?不知道这是否是正确的表达方式,而且很有可能重复出现(但是我找不到很好的问题)。
下面的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
Run Code Online (Sandbox Code Playgroud)
小智 1
library(zoo)
is.regular(x3, strict=TRUE)
is.regular(x3, strict=FALSE)
Run Code Online (Sandbox Code Playgroud)