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