【问题标题】:make a list from dataframe column in R从 R 中的数据框列创建一个列表
【发布时间】:2023-02-23 11:30:10
【问题描述】:

来自数据框 df(a 和 b 是列名)

a b
xx Apple
yy Orange
zz Apple
dd Mango
pp Mango

我希望输出为

Apple xx,zz
Orange yy
Mango dd,pp

我尝试了aggregategroup_by 但失败了。

【问题讨论】:

    标签: r group-by aggregate


    【解决方案1】:

    基数 R:

    单个aggregate 就足以完成此操作。在这里,您可以将 FUN 应用于列 a 并在列 b (a ~ b) 上进行分组。要使用的函数是paste,参数为collapse,以便将多个字符串折叠成一个。

    aggregate(a ~ b, df, FUN = paste, collapse = ",")
    
           b     a
    1  Apple xx,zz
    2  Mango dd,pp
    3 Orange    yy
    

    双绞线

    由于您提到了group_by,因此在dplyr 中执行此操作的正确语法如下:

    library(dplyr)
    
    df %>% group_by(b) %>% summarize(a = paste(a, collapse = ","))
    
    # A tibble: 3 × 2
      b      a    
      <chr>  <chr>
    1 Apple  xx,zz
    2 Mango  dd,pp
    3 Orange yy   
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 2015-04-21
      • 1970-01-01
      • 2017-04-30
      • 1970-01-01
      • 2017-01-31
      相关资源
      最近更新 更多