【问题标题】:R Mutate and Count Backwards with a groupR 与组一起变异和倒数
【发布时间】:2021-04-25 18:26:00
【问题描述】:

对于以下数据框:

A<-c('A','A','A','B','B','B','B','B','C','C','C','C','D','D','D','D','D','D')
A<-data.frame(A)

每次“A”组发生变化时,如何添加一列倒数......如: 期望的输出:

desired_output

感谢您的帮助。

【问题讨论】:

    标签: r group-by count dplyr


    【解决方案1】:

    我们可以在按'A'分组后在row_number()上使用rev

    library(dplyr)
    A <- A %>%
       group_by(A) %>%
       mutate(desired = rev(row_number())) %>% 
       ungroup
    

    -输出

    # A tibble: 18 x 2
    #   A     desired
    #   <chr>   <int>
    # 1 A           3
    # 2 A           2
    # 3 A           1
    # 4 B           5
    # 5 B           4
    # 6 B           3
    # 7 B           2
    # 8 B           1
    # 9 C           4
    #10 C           3
    #11 C           2
    #12 C           1
    #13 D           6
    #14 D           5
    #15 D           4
    #16 D           3
    #17 D           2
    #18 D           1
    

    或者另一种选择是使用: 到 1 创建序列

    A %>%
       group_by(A) %>%
       mutate(desired = n():1) %>%
       ungroup 
    

    【讨论】:

    • 谢谢你 - 所以你要添加一个列,从组中的“n”个元素向后计数到 1...然后重新开始。太好了 - 赞赏。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-05
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 2018-12-13
    • 1970-01-01
    • 2012-06-22
    相关资源
    最近更新 更多