我正在尝试计算数据帧上的每日音量总和。数据框看起来像这样(它是一个选项链):
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
我无法找到一个很好的方法来做到这一点。我想计算很多其他指标,但找出这个指标将是实施其他指标的第一步(如不同到期日的交易量总和)。谢谢!
答案 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