如何从数据框计算每日总和(选项链数据)

时间:2015-05-15 01:31:26

标签: r

我正在尝试计算数据帧上的每日音量总和。数据框看起来像这样(它是一个选项链):

     eod_date     expiry type strike  last   bid   ask volume
1 2015-05-11 2017-01-20 call   65.0  0.00  0.23  0.2      1
2 2015-05-11 2015-05-15 call   24.0  0.00 14.20 16.00     2 
3 2015-05-12 2015-05-15 call   27.5  0.00 13.95 15.65     4
4 2015-05-12 2015-05-15 call   30.0 11.90 11.45 12.05     9

每日交易量的计算输出应该是这样的数据框:

    eod_date  type volume
1 2015-05-11 call      3
2 2015-05-12 call     13

我无法找到一个很好的方法来做到这一点。我想计算很多其他指标,但找出这个指标将是实施其他指标的第一步(如不同到期日的交易量总和)。谢谢!

3 个答案:

答案 0 :(得分:2)

data.table选项为

library(data.table)
setDT(df1)[,list(volume= sum(volume)) , list(eod_date, type)]
#     eod_date type volume
#1: 2015-05-11 call      3
#2: 2015-05-12 call     13

答案 1 :(得分:1)

您可以使用aggregate

执行此操作
aggregate(volume~eod_date+type, data=dat, FUN=sum)
#     eod_date type volume
# 1 2015-05-11 call      3
# 2 2015-05-12 call     13

答案 2 :(得分:1)

使用dplyr即可:

library(dplyr)
df %>% group_by(eod_date, type) %>% summarise(volume = sum(volume))

给出了:

#Source: local data frame [2 x 3]
#Groups: eod_date
#
#    eod_date type volume
#1 2015-05-11 call      3
#2 2015-05-12 call     13