我目前正在处理具有以下 3 列的 data.table (myDT):
TRADE_DATE TRADER VOLUME
01-MAY-2013 T1 100
01-MAY-2013 T2 200
01-MAY-2013 T3 500
01-MAY-2013 T4 200
02-MAY-2013 T1 400
02-MAY-2013 T2 500
02-MAY-2013 T3 50
02-MAY-2013 T4 50
我想找到一种方法来计算每个交易者每天的股票交易量。目前我正在计算每天的总交易量,然后与上表合并以计算每个交易者每天的市场份额。使用 data.tables 是否有更直接的方法?
我附上了我的代码:
daylyVolume<-myDT[,list(DAILY_VOLUME=sum(VOLUME)),by="TRADE_DATE"]
myDT<-merge(myDT,daylyVolume,all=TRUE,by='TRADE_DATE')
myDT$"SHARE_VOLUME"<-100*myDT$"VOLUME"/myDT$"DAILY_VOLUME"
结果如下:
TRADE_DATE TRADER VOLUME SHARE DAYLY_VOLUME
01-MAY-2013 T1 100 10 1000
01-MAY-2013 T2 200 20 1000
01-MAY-2013 T3 500 50 1000
01-MAY-2013 T4 200 20 1000
02-MAY-2013 T1 400 40 1000
02-MAY-2013 T2 500 50 1000
02-MAY-2013 T3 50 5 1000
02-MAY-2013 T4 50 5 1000