R中每日面板数据的每周平均值

Weekly average of daily panel data in R

我有一个大型面板数据集,每天大约有 400 万次观察 (Overview of my Dataset)。

变量 symbol 描述了数据集中包含的 952 只不同的股票,其他变量是一些与股票相关的日常指标。我想计算代码中包含的 952 只股票中每只股票的变量 rv、rskew、rkurt 和 rsj 的每周平均值。

我尝试用 group_by(符号)对数据集进行分组,但后来我没能以正确的方式汇总每日观察结果。

我对 R 不是很有经验,非常感谢这里的一些帮助。

使用 lubridatedplyr 包很简单:

library(dplyr)
library(lubridate)

set.seed(123)
df <- data.frame(date = seq.Date(ymd('2020-07-01'),ymd('2020-07-31'),by='day'),
           sybol = 'a',
           x = runif(31),
           y = runif(31),
           z = runif(31)
           )

df <- df %>%
  mutate(year = year(date),
         week = week(date),
         ) %>%
  group_by(year, week, symbol) %>%
  summarise(x = mean(x),
            y = mean(y),
            z = mean(z)
  )
> df
# A tibble: 5 x 6
# Groups:   year, week [5]
   year  week symbol     x     y     z
  <dbl> <dbl> <fct>  <dbl> <dbl> <dbl>
1  2020    27 a      0.555 0.552 0.620
2  2020    28 a      0.652 0.292 0.461
3  2020    29 a      0.495 0.350 0.398
4  2020    30 a      0.690 0.495 0.609
5  2020    31 a      0.466 0.378 0.376