r 中的四分之一
Quarter over Quarter in r
我一直在尝试计算股票的季度环比变化,但没有成功。我有一个 data.table 大约有 1500 万行。
我需要计算的是根据 Holder 和他们拥有的股票每个季度的绝对值变化。
我的数据 table 如下所示:
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
之后,我需要再次计算这个结果的方差,由 Holder 和 stock 计算。是否有任何通用函数可以通过对几列进行分组来计算统计信息?我试过聚合,但花了 yearsssss...
aggregate(REPORTED_HOLDING~Quarter+FILER_NAME+STOCK_NAME, FUN=sum, data=df)
使用 dplyr
,假设 df
是你的数据。frame:
df %>%
group_by(stock, Holder) %>%
mutate(qoq = Shares - lag(Shares)) %>%
summarise(qvar = var(qoq, na.rm = T))
我一直在尝试计算股票的季度环比变化,但没有成功。我有一个 data.table 大约有 1500 万行。
我需要计算的是根据 Holder 和他们拥有的股票每个季度的绝对值变化。
我的数据 table 如下所示:
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
之后,我需要再次计算这个结果的方差,由 Holder 和 stock 计算。是否有任何通用函数可以通过对几列进行分组来计算统计信息?我试过聚合,但花了 yearsssss...
aggregate(REPORTED_HOLDING~Quarter+FILER_NAME+STOCK_NAME, FUN=sum, data=df)
使用 dplyr
,假设 df
是你的数据。frame:
df %>%
group_by(stock, Holder) %>%
mutate(qoq = Shares - lag(Shares)) %>%
summarise(qvar = var(qoq, na.rm = T))