Я пытался рассчитать квартал за четверть изменения в акциях без везения. У меня есть таблица данных с примерно 15миллионными рядами. Что мне нужно рассчитать - это изменение абсолютных значений ежеквартально в соответствии с Держателем и их собственностью.
Моя таблица данных выглядит следующим образом:Квартал за квартал в 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 [., Сумма (х), по = (у, г)] 'где x, y и z - столбцы. – Frank
Привет, Франк, спасибо! Я читал виньетки. Теперь я знаю больше о таблицах данных! – ph33