Вот решение.Я построил его так, чтобы он возвращал TRUE
для вектора, который содержит набор последовательных целых чисел, даже если некоторые из них повторяются (например, c(1,3,2,1,1,1)
).Если вы хотите, чтобы он возвращал FALSE
в таких случаях, просто удалите часть, которая вызывает unique()
.
is.adjacent <- function(X) {
all(diff(sort(unique(X))) == 1)
}
# Try it out
x <- c(1,2,3)
y <- c(1,2,4)
z <- c(4,2,1,3)
is.adjacent(x)
is.adjacent(y)
is.adjacent(z)