代码之家  ›  专栏  ›  技术社区  ›  John Thomas

将ID的所有条目存储在tidyverse中列内的列表中

  •  0
  • John Thomas  · 技术社区  · 2 年前

    假设我有一些简单的数据如下:

    ID   value  character
    001      A        JABA
    002      B        FABA
    001      B        RABA
    003      D        RIBI
    003     TT        LENI
    004      A        LENT
    001      A        TATA
    004      N        YAYA
    004      N        YANA
    

    我想做的(使用tidyverse/dplyr)是在整个表中创建这些ID及其值的汇总表。如果用户有一个值的重复项,则该值只应出现一次。

    预期输出

    ID   values
    001  [A,B]
    002  [B]
    003  [D,TT]
    004  [A,N]
    

    不过分依附于格式,但你会想到:)

    1 回复  |  直到 2 年前
        1
  •  1
  •   Jon Spring    2 年前
    library(dplyr)
    df %>%
      group_by(ID) %>%
      distinct(value) %>%
      summarize(val = paste(value, collapse = ", "))
    
    # A tibble: 4 × 2
         ID val  
      <int> <chr>
    1     1 A, B 
    2     2 B    
    3     3 D, TT
    4     4 A, N