【问题标题】:Assigning values to correlative series in r为r中的相关序列赋值
【发布时间】:2015-12-04 07:53:15
【问题描述】:

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

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

非常感谢!

一个。

【问题讨论】:

    标签: r series


    【解决方案1】:

    我们可以使用diff得到'num'中相邻元素之间的差异,并检查它是否不等于1。逻辑输出将比'num'向量的长度小1。我们用 '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
    

    【讨论】:

    • 谢谢!效率很高!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 2020-02-05
    • 2016-02-05
    • 1970-01-01
    • 2021-12-20
    • 2017-07-21
    相关资源
    最近更新 更多