2013-10-25 125 views
-3

大家好,我正在尝试解决R中的一个问题。我想汇总R中有date变量,character变量和numeric变量的数据。我的数据库的结构是这样的:如何按日期汇总数据R

Date   ID   Mount 
01/05/2013 1100  100 
01/05/2013 1100  500 
01/05/2013 11300  200 
01/05/2013 11300  500 
19/09/2013 4500  1000 
19/09/2013 4500  3000 
19/09/2013 5679  200 
19/09/2013 5679  300 
20/09/2013 4519  1000 
20/09/2013 4519  2000 
20/09/2013 5001  200 
20/09/2013 5001  200 

我想按日期和第二通过ID第一聚集我的数据库,这样的事情:

Date   ID  Mount 
01/05/2013 1100 600 
      11300 700 
19/09/2013 4500 4000 
      5679 500 
20/09/2013 4519 3000 
      5001 400 

我与aggregate()功能的尝试,但只有它给我datemount,我不能把ID变量。谢谢你的帮助。

+1

你能在'聚合()'使用'+'?像'汇总(登录〜身份证+日期)' – Hugh

+0

@Hugh我试过,但它给每个日期具有相同的ID,而不是每个ID的合计值 – Duck

回答

0
library(data.table) 
dt <- data.table(dt) 
dt[,list(sum(Mount)), by = c("Date","ID")] 
+2

@Duck,你期望得到不同的东西吗? – TheComeOnMan

0

这是你要找的

> result <-aggregate(Mount~Date + ID, sum, data=df) 
> (result <- result[order(result$Date), ]) 
     Date ID Mount 
1 01/05/2013 1100 600 
6 01/05/2013 11300 700 
2 19/09/2013 4500 4000 
5 19/09/2013 5679 500 
3 20/09/2013 4519 3000 
4 20/09/2013 5001 400 

df什么是你的data.frame

+0

那很好但是我怎么能按'日期'来分组首先应该出现在'19/09/2013'组最后一组'01/05/2013'和最后一组'20/09/2013' @ Jilber – Duck

+0

@Duck看到更新的答案。 –