如果具有相同的列标志,则合并两个单元格的结果

时间:2013-09-16 12:31:13

标签: r merge dataframe

我有以下表结构:

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

此刻我似乎只能“融合”列。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

aggregate(yourdata$Number,by=list(Type=yourdata$Type,Year=yourdata$Year),sum)

答案 1 :(得分:1)

使用公式:

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

答案 2 :(得分:1)

使用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"]