为r中的相关序列赋值

Assigning values to correlative series in r

我希望你能帮助我解决我遇到的这个问题。 我有一个大数据框,为了简化它,它看起来像这样:

df <- data.frame(radius = c (2,3,5,7,4,6,9,8,3,7,8,9,2,4,5,2,6,7,8,9,1,10,8))
df$num <- c(1,2,3,4,5,6,7,8,9,10,11,1,12,13,1,14,15,16,17,18,19,1,1)
df

第$num列有相关序列(1-11, 1, 12-13, 1, 14-19,1,1) 我想为每个相关系列分配一个值(排序)作为一列。结果应该是这样的:

df$outcome <- c(1,1,1,1,1,1,1,1,1,1,1,2,3,3,4,5,5,5,5,5,5,6,7)
df

非常感谢!

A​​.

我们可以使用diff得到'num'中相邻元素之间的差值,并检查它是否不等于1。逻辑输出将比[=15的长度少一=] 向量。我们用 'TRUE' 和 cumsum 填充以获得预期的输出。

df$outcome <- cumsum(c(TRUE,diff(df$num)!=1))
df$outcome
#[1] 1 1 1 1 1 1 1 1 1 1 1 2 3 3 4 5 5 5 5 5 5 6 7