分享
三行代码  ›  专栏  ›  技术社区  ›  Thiago Fernandes

如何在R中枚举组?[复制]

  •  0
  • Thiago Fernandes  · 技术社区  · 2 天前

    enter image description here

    数据集

    lines = "Group
    C
    C
    C
    B
    B
    A
    A
    A
    A
    A
    A
    D
    D
    D
    D
    "
    
    dataset = read.table(textConnection(lines), sep=";", h=T)
    
    1 回复  |  直到 2 天前
        1
  •  2
  •   Duck    2 天前

    试试看 cur_group_id() dplyr :

    library(dplyr)
    #Code 1
    newdf <- dataset%>% 
      mutate(Group=factor(Group,levels = unique(Group),ordered = T)) %>%
      group_by(Group) %>% mutate(Num=cur_group_id())
    

    # A tibble: 15 x 2
    # Groups:   Group [4]
       Group   Num
       <ord> <int>
     1 C         1
     2 C         1
     3 C         1
     4 B         2
     5 B         2
     6 A         3
     7 A         3
     8 A         3
     9 A         3
    10 A         3
    11 A         3
    12 D         4
    13 D         4
    14 D         4
    15 D         4
    

    或使用 base R :

    #Code 2
    dataset$Num <- as.integer(factor(dataset$Group,levels = unique(dataset$Group)))
    

       Group Num
    1      C   1
    2      C   1
    3      C   1
    4      B   2
    5      B   2
    6      A   3
    7      A   3
    8      A   3
    9      A   3
    10     A   3
    11     A   3
    12     D   4
    13     D   4
    14     D   4
    15     D   4