这应该非常简单。我有一个动物园对象,有500次系列(每个都是不同的产品)和250个销售期。动物园对象是完全矩形的,所有系列都包含每个时间点的观察。我的索引列是一个非常简单的1 ... 250,
我的困难在于尝试汇总所有时间序列以形成“总销售额”系列。
我尝试使用聚合,这似乎专注于聚合行,例如几天到几个月。但我想保留每一段时间,只是将时间序列汇总在一起。这是我的动物园对象的简化版本,如下所示,只有5个系列。
head(z.all)
1 2 3 4 5
1 1232.205 1558.056 993.9784 1527.066 359.6946
2 1262.194 1665.084 1092.0105 1834.313 484.5073
3 1301.034 1528.607 900.4158 1587.548 525.5191
4 1014.082 1352.090 1085.6376 1785.034 490.9164
5 1452.149 1623.015 1197.3709 1944.189 600.5150
6 1463.359 1205.948 1155.0340 1528.887 556.6371
当我尝试使用以下两个命令中的任何一个进行聚合时,我得到与原始zoo对象中完全相同的数据!!
aggregate(z.all[,1:num.series], index(z.all), sum)
aggregate(z.all, index(z.all), sum)
但是我能够通过这样做进行聚合,尽管对于500列来说这是不现实的!我希望尽可能避免使用循环。
z.all[,1] + z.all[,2]
如果这不是正确的协议,请道歉,这是我在本网站的第一篇文章。
答案 0 :(得分:3)
我希望我能正确理解你想要的东西。但如果它是你想要的rowum:
rowSums(z.all)
直接来自base
包。 (?rowSums
)。此函数沿一行添加所有值:
D<-cbind(rep(1,10),c(1:10))
colSums(D)
[1] 10 55
rowSums(D)
[1] 2 3 4 5 6 7 8 9 10 11
相反的是colSums()
,它会对每一列进行求和。