r - 将数字向量拆分为 R 中的连续 block

标签 r vector

<分区>

如果我有一个数值向量 [1 2 3 4 7 8 9 10 15 16 17],我该如何拆分它以便返回多个向量来分隔该向量的连续元素? IE。 [1 2 3 4] [7 8 9 10] [15 16 17]。我已经找到了如何在 matlab 中执行此操作的答案,但我只使用 R。

谢谢。

最佳答案

这是另一种选择:

vec <- c( 1, 2, 3, 4, 7, 8, 9, 10, 15, 16, 17 )
split(vec, cumsum(seq_along(vec) %in% (which(diff(vec)>1)+1)))
# $`0`
# [1] 1 2 3 4
# 
# $`1`
# [1]  7  8  9 10
# 
# $`2`
# [1] 15 16 17

关于r - 将数字向量拆分为 R 中的连续 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18508363/

相关文章:

r - 获取数据框中的前 n 行?

c++ - 为什么我得到 : "cannot seek vector iterator after end"

c++ - 查找 vector 的 vector 的最大值/最小值

c# - std::vector::iterators 在 C# 中的等效项是什么?

python - 算法 3D点云体积计算

r - 在R中使用readLines()读取url时发现不完整的最后一行错误

c++ - Vector 不是 std 的成员,包含所有内容

c++ - 将成员变量复制到字节 vector 中

c++ - 从 QR 对象获取 R 矩阵

使用 rmongodb 在 R 中运行高级 MongoDB 查询