【发布时间】:2025-11-25 12:45:02
【问题描述】:
假设我有一个 data.frame
> ID=c("S","B","S","S","B","S","S","S","B","B","S") #"S" means Sell, "B" means Buy
> quant=c(3,2,5,1,2,10,4,4,17,6,6)
> time=c(1,2,3,3,4,4,5,5,5,6,6)
> test=data.frame(ID,quant,time)
ID quant time
1 S 3 1
2 B 2 2
3 S 5 3
4 S 1 3
5 B 2 4
6 S 10 4
7 S 4 5
8 S 4 5
9 B 17 5
9 B 6 6
9 S 6 6
我需要计算每次的净头寸,这样我的最终输出就是
ID quant time
1 S 3 1
2 B 2 2
3 S 6 3 #Sell 5+1=6
4 S 8 4 #Sell 10-2=8
5 B 9 5 #Buy 17-4-4=9
6 B 0 6 #this row is optional because the position is 0 so I don't need it
我想我需要先按时间然后按 ID 对 data.frame 进行分组,但是我该如何执行净头寸的计算呢?我试过使用aggregate,但它似乎只对按一列分组有效?谢谢!
【问题讨论】:
标签: r