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

R 如何从数据框(选项链数据)计算每日总和,r,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

我试图在一个数据帧上计算每天的总量。数据框看起来像这样,它是一个选项链:

     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
我还没有想出一个好办法来做这件事。我还想计算很多其他指标,但计算出这一指标将是实现其他指标的第一步,比如不同到期日的总量总和。谢谢

您可以使用聚合执行此操作:

您可以使用聚合执行此操作:

使用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
使用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
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
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