【问题标题】:R - Combining duplicate rows within dataframe in R :R - 在 R 中合并数据框中的重复行:
【发布时间】:2016-10-12 14:02:18
【问题描述】:

我有一个如下的数据框:请注意COL1 有重复的条目

COL1 COL2 COL3
10   hai   2   
10   hai   3
10   pal   1

我希望输出如下所示:即COL1 应该有唯一的条目(10),COL2 应该包含它下面的合并条目,没有重复(hai pal),COL3应该包含条目的总和(2+3+1=6)

输出:

COL1   COL2     COL3
10    hai pal    6

【问题讨论】:

    标签: r dataframe merge


    【解决方案1】:

    也许我们需要按组聚合。将'data.frame'转换为'data.table'(setDT(df1),按'COL1'、paste和'COL2'中的unique元素分组,并得到'COL3'的sum .

    library(data.table)
    setDT(df1)[,.(COL2  = paste(unique(COL2), collapse=" "), COL3= sum(COL3)) , by = COL1]
    #     COL1    COL2 COL3
    #1:    10 hai pal    6
    

    【讨论】:

    • dplyr, df %>% group_by(COL1) %>% summarise(COL2 = paste0(unique(COL2), collapse = " "), COL3 = sum(COL3))
    • 谢谢 Ronak....只是一个小的更正...我想将您的语句的输出存储到另一个数据框中。我怎么会这样做????
    • @Rambo 你只需要分配它,即df2 <- setDT(df1)[,.(COL2 = paste(unique(COL2), collapse=" "), COL3= sum(COL3)) , by = COL1]如果你需要转换为data.frame,那么setDT(df2)
    • @Rambo 你需要加载library(data.table)。如果没有安装则install.packages("data.table")
    • @akrun 太好了!...这对我有用..很高兴你帮助了:) :)
    猜你喜欢
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    • 1970-01-01
    • 2012-04-06
    相关资源
    最近更新 更多