按顺序拆分矢量

Ric*_*ven 11 r

以下向量x包含两个序列1:46:7,其他非连续数字之间.

x <- c(7, 1:4, 6:7, 9)
Run Code Online (Sandbox Code Playgroud)

我想x按顺序拆分,以便结果如下所示.

# [[1]]
# [1] 7
#
# [[2]]
# [1] 1 2 3 4
#
# [[3]]
# [1] 6 7
#
# [[4]]
# [1] 9
Run Code Online (Sandbox Code Playgroud)

有一种快速简单的方法吗?

我试过了

split(x, c(0, diff(x)))
Run Code Online (Sandbox Code Playgroud)

接近,但我不想附加0差异向量是正确的方法.使用findInterval也没有用.

Rol*_*and 16

split(x, cumsum(c(TRUE, diff(x)!=1)))
#$`1`
#[1] 7
#
#$`2`
#[1] 1 2 3 4
#
#$`3`
#[1] 6 7
#
#$`4`
#[1] 9
Run Code Online (Sandbox Code Playgroud)