【问题标题】:R - create incrementing column based on id occurencies [duplicate]R - 根据id出现创建递增列[重复]
【发布时间】:2014-12-03 12:10:03
【问题描述】:

我对 R 很陌生,需要一些帮助来完成一项任务。我的数据框 data1 看起来像这样:

ID    Action
A1    A
A1    E
A2    B
B1    A
B2    C
B2    D   
B2    A
B3    E

我需要创建一个新的列序列,它根据 ID 递增,并且基本上告诉我,当时在此 ID 上执行操作的频率。对于一个新的 ID,它将重新从 1 开始。它看起来像这样:

ID    Action  Sequence
A1    A       1
A1    E       2
A2    B       1
B1    A       1
B2    C       1
B2    D       2
B2    A       3
B3    E       1

我已经尝试搜索类似的问题,但只能找到解决方案,其中出现的次数被计数而不增加。

如果你能帮助我,那就太好了

提前致谢!

【问题讨论】:

    标签: r count dataframe increment


    【解决方案1】:

    您可以从splitstackshape 使用getanID

    library(splitstackshape)
     getanID(df, 'ID')
     #     ID Action .id
     #1: A1      A   1
     #2: A1      E   2
     #3: A2      B   1
     #4: B1      A   1
     #5: B2      C   1
     #6: B2      D   2
     #7: B2      A   3
     #8: B3      E   1
    

    ave 来自base R

    transform(df, Sequence=ave(seq_along(ID), ID, FUN=seq_along))
    #    ID Action Sequence
    #1 A1      A        1
    #2 A1      E        2
    #3 A2      B        1
    #4 B1      A        1
    #5 B2      C        1
    #6 B2      D        2
    #7 B2      A        3
    #8 B3      E        1
    

    【讨论】:

    • 非常感谢!这正是我想要的!
    猜你喜欢
    • 1970-01-01
    • 2020-01-19
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    • 1970-01-01
    • 2018-08-17
    相关资源
    最近更新 更多