0
我一直在努力計算季度變化的股票沒有運氣。我有一個約1500萬行的data.table。 我需要計算的是根據Holder和他們自己的股票逐季度的絕對值變化。
我的數據表看起來像這樣:r季度的季度變化
stock Holder Quarter Shares
1: GOOGLE Advance Capital Management, Inc. 2015 Q3 5800
2: GOOGLE Advance Capital Management, Inc. 2015 Q4 9000
3: GOOGLE Advance Capital Management, Inc. 2016 Q1 7000
4: GOOGLE Advance Capital Management, Inc. 2016 Q2 7560
5: GOOGLE Advest, Inc. 2015 Q3 12000
6: GOOGLE Advest, Inc. 2015 Q3 13450
我試圖使用data.table功能,採用
df[, qoq := c(NA, diff(Shares)), by = "Holder,stock,Quarter"]
不過,我只得到NA。
我期待這樣的事情:
stock Holder Quarter Shares qoq
1: GOOGLE Advance Capital Management, Inc. 2015 Q3 5800 NA
2: GOOGLE Advance Capital Management, Inc. 2015 Q4 9000 4000
3: GOOGLE Advance Capital Management, Inc. 2016 Q1 7000 -2000
4: GOOGLE Advance Capital Management, Inc. 2016 Q2 7560 560
5: GOOGLE Advest, Inc. 2015 Q3 12000 NA
6: GOOGLE Advest, Inc. 2015 Q3 13450 1450
在那之後,我需要計算這一結果的差異,再由持有人及股票。是否有通過分組幾列來計算統計數據的一般函數?我試過,但總正在yearsssss ...
aggregate(REPORTED_HOLDING~Quarter+FILER_NAME+STOCK_NAME, FUN=sum, data=df)
如果你讀了data.table護身符,你會看到這樣做聚合簡單快速的語法,比如'DT [,SUM(X),由=(Y,Z)] '其中x,y和z是列。 – Frank
嗨,弗蘭克,謝謝!我讀了小插曲。現在我更瞭解數據表了! – ph33