小编jon*_*nas的帖子

将矢量拆分为相等值的连续运行

我有一个数据表,其中一列是一堆0和1,如下vec所示.

vec = c(rep(1, times = 6), rep(0, times = 10), rep(1, times = 11), rep(0, times = 4))

> vec
 [1] 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0
Run Code Online (Sandbox Code Playgroud)

我想要做的是每当该列的变化从0变为1时分割数据,反之亦然.这是我到目前为止所做的:

b = c(vec[1],diff(vec))

rowby = numeric(0)
for (i in 2:(length(b))) {
  if (b[i] != 0) {
    rowby <- c(rowby, i-1)
  } 
}
splitted_data <- …
Run Code Online (Sandbox Code Playgroud)

r

4
推荐指数
1
解决办法
338
查看次数

标签 统计

r ×1