繁体   English   中英

如何总结R中的每月数量?

[英]How to summarize monthly qty in R?

我有一个记录交付情况的数据框。 如何创建一个汇总数据框架,该数据框架的月份数为列,行号为客户#,每月数量总和?

> my.data
   yr   mo    cust    qty
1  2010  6 2005161 620448
2  2009  5   29290 533000
3  2011  6   51800 125000
4  2011  7 2005149 677856
5  2009  5   51888 128000
6  2011  1  290913  51400
7  2010  9 2075516 352800
8  2011 11   34029 574200
9  2009 11   40740 734740
10 2011 10 2016135 300209
11 2011  5 2000294 605300
12 2010  3   34004 675200
13 2011  2 2030823 610236
14 2011 12 2016188 682000
15 2010  7   23409  85000
16 2011  1 2089839 188000
17 2011 11   34414 455658
18 2011  7 2004149 166200
19 2011 11   40404 235000
20 2009  7  203203 531000
library(reshape2)
dcast(my.data, formula = cust ~ mo, fun.aggregate = sum, value.var = "qty")

如果您想要每个月的数量总和,则可以执行以下操作。 mydf是您的my.data 您可以使用tidyr包中的spread来转换数据。 然后,使用addmargins添加数量总和的行,这需要表或数组。 您将其转换为data.frame。 最后,您更改废话之yrcutsNA

library(tidyr)
foo <- as.data.frame(addmargins(as.matrix(spread(mydf, mo, qty, fill = 0)),
                     1, FUN = list(total = 'sum')))

foo[nrow(foo), c(1:2)] <- NA

另外,您也可以这样做。

ana <- spread(mydf, mo, qty, fill = 0)
ana[nrow(ana)+1, ] <- colSums(ana)
ana[nrow(ana), c(1:2)] <- NA

#        yr    cust      1      2      3       5      6       7      9     10      11     12
#1     2009   29290      0      0      0  533000      0       0      0      0       0      0
#2     2009   40740      0      0      0       0      0       0      0      0  734740      0
#3     2009   51888      0      0      0  128000      0       0      0      0       0      0
#4     2009  203203      0      0      0       0      0  531000      0      0       0      0
#5     2010   23409      0      0      0       0      0   85000      0      0       0      0
#6     2010   34004      0      0 675200       0      0       0      0      0       0      0
#7     2010 2005161      0      0      0       0 620448       0      0      0       0      0
#8     2010 2075516      0      0      0       0      0       0 352800      0       0      0
#9     2011   34029      0      0      0       0      0       0      0      0  574200      0
#10    2011   34414      0      0      0       0      0       0      0      0  455658      0
#11    2011   40404      0      0      0       0      0       0      0      0  235000      0
#12    2011   51800      0      0      0       0 125000       0      0      0       0      0
#13    2011  290913  51400      0      0       0      0       0      0      0       0      0
#14    2011 2000294      0      0      0  605300      0       0      0      0       0      0
#15    2011 2004149      0      0      0       0      0  166200      0      0       0      0
#16    2011 2005149      0      0      0       0      0  677856      0      0       0      0
#17    2011 2016135      0      0      0       0      0       0      0 300209       0      0
#18    2011 2016188      0      0      0       0      0       0      0      0       0 682000
#19    2011 2030823      0 610236      0       0      0       0      0      0       0      0
#20    2011 2089839 188000      0      0       0      0       0      0      0       0      0
#total   NA      NA 239400 610236 675200 1266300 745448 1460056 352800 300209 1999598 682000

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM