【问题标题】:Merge result of two cells if have the same column flag如果具有相同的列标志,则合并两个单元格的结果
【发布时间】:2013-09-16 12:31:12
【问题描述】:

我的表结构如下:

Number      Type      Year
------      ----      ---- 
10          a         2000
20          b         2000
20          b         2000
10          c         2001

我想合并列标志相同的单元格的结果。例如,类型 b 的两个单元格在同一年有两个单独的结果,20 和 20。我想最终得到一个这样的数据框:

Number      Type      Year
------      ----      ---- 
10          a         2000
40          b         2000
10          c         2001

我现在似乎只能将列“融化”在一起。有人可以帮忙吗?

【问题讨论】:

标签: r merge dataframe


【解决方案1】:
aggregate(yourdata$Number,by=list(Type=yourdata$Type,Year=yourdata$Year),sum)

【讨论】:

  • @brucezepplin 很高兴我能帮上忙!
【解决方案2】:

使用公式:

aggregate(Number ~ Type + Year, data=DF, sum)

【讨论】:

    【解决方案3】:

    使用plyr 包和data.table 包的解决方案:

    library(plyr)
    ddply(df,.(Type,Year),summarize, Number=sum(Number))
    
    library(data.table)
    DT<-data.table(df)
    setkey(DT,Type,Year)
    DT[,list(Number=sum(Number)),by="Type,Year"]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-13
      • 2017-03-07
      • 1970-01-01
      • 2015-08-05
      • 1970-01-01
      • 1970-01-01
      • 2015-07-20
      • 2020-05-09
      相关资源
      最近更新 更多