在R中,我有4个具有不同日期和PL值的数据框:
head(Array1)给出:
Dates P&L
1 2014-10-01 900
2 2014-10-02 -3185
3 2014-10-03 3800
4 2014-10-07 -2300
5 2014-10-08 2100
6 2014-10-09 2400
head(array2)给出:
Dates P&L
1 2015-03-02 -6962.5
2 2015-03-03 -14237.5
3 2015-03-04 7862.5
4 2015-03-05 925.0
5 2015-03-09 -3725.0
6 2015-03-10 262.5
head(array3)给出:
Dates P&L
1 2014-10-08 7160
2 2014-10-09 7600
3 2014-10-10 2260
4 2014-10-13 4820
5 2014-10-15 -1500
6 2014-11-06 3030
head(array4)给出:
Dates P&L
1 2015-02-24 1245
2 2015-03-06 10650
3 2015-03-10 -200
4 2015-04-17 -9690
5 2015-05-15 -28740
6 2015-05-26 3970
我想在一个数组中聚合所有这些数组,在一个日期有多个值时保持日期排序和求和。有人可以帮帮我吗?乔
答案 0 :(得分:1)
一种选择是将rbind
所有数据框合并为一个数据框,然后将这些值汇总到Dates
:
agg <- aggregate(`P&L` ~ Dates, rbind(array1, array2, array3, array4), FUN = sum)
agg[order(as.Date(agg$Dates)),]
# Dates P&L
#1 2014-10-01 900.0
#2 2014-10-02 -3185.0
#3 2014-10-03 3800.0
#4 2014-10-07 -2300.0
#5 2014-10-08 9260.0
#6 2014-10-09 10000.0
# ...
或者将四个数组放在一个列表中,使用do.call(rbind, ...
将数据框绑定在一起:
lst <- list(array1, array2, array3, array4)
agg <- aggregate(`P&L` ~ Dates, do.call(rbind, lst), FUN = sum)
agg[order(as.Date(agg$Dates)),]