【问题标题】:Numbering IDs based on group R基于 R 组的 ID 编号
【发布时间】:2021-04-15 16:49:56
【问题描述】:

下面的dataframe 称为df1。我想根据它一旦接近“Apple”来分配一个 ID,它将 ID 号更改为下一个序号。当它被分配为“Apple”时,我希望之后的所有相应标签都是为“Apple”分配的标签。但是一旦出现“Apple”,它就会像以下标签一样上升一个数字。

谢谢,非常感谢!

df1 <- data.frame (fruit_name  = c("Apple", "Banana", "Cherry",
                           "Orange", "Blueberry", "Peach",
                           "Apple", "Banana", "Cherry",
                           "Orange", "Blueberry", "Peach",
                           "Apple", "Banana", "Cherry",
                           "Orange", "Blueberry",
                           "Apple", "Cherry"))

进入以下

df2 <- data.frame (ID  = c("1", "1", "1", "1", "1", "1", "2", "2",
                           "2", "2", "2", "2", "3", "3", "3", "3", "3",
                           "4", "4"),
                   fruit_name = c("Apple", "Banana", "Cherry",
                                  "Orange", "Blueberry", "Peach",
                                  "Apple", "Banana", "Cherry",
                                  "Orange", "Blueberry", "Peach",
                                  "Apple", "Banana", "Cherry",
                                  "Orange", "Blueberry",
                                  "Apple", "Cherry"))

【问题讨论】:

    标签: r dplyr data-munging ids


    【解决方案1】:

    我们可以使用rowid

    library(data.table)
    df1$ID <- rowid(df1$fruit_name)
    

    【讨论】:

      【解决方案2】:

      您可以使用cumsum

      df1$ID <- cumsum(df1$fruit_name == 'Apple')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-01-05
        • 2020-06-04
        • 2022-06-17
        • 1970-01-01
        • 1970-01-01
        • 2015-03-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多