如何在列表 R 中使用 group_by(或类似命令)

How to use group_by (or similar command) in lists R

我不得不处理超过一百个站点的气象数据集。数据结构如下所示(月份从 1 到 12,年份从 1965 到 2020):

station month year hourlymax
CYBG 1 1965 8
CYBC 1 1965 6
CYKG 1 1965 3.5
CYBG 1 1965 2
CYBC 1 1965 3.5
CYKG 1 1665 4

我使用函数 split Stations <- split(all_stations, all_stations$station,按站点拆分这个大数据集。我现在想知道是否可以将某些功能应用于列表中的所有数据集。例如,我想获取变量的月均值。我尝试了代码(列表名称是站)

for (i in 1:length(Stations)) {
  group_by(month) %>%
  summarise(result = mean(hourlymax) )
}

起初可能有更好的拆分数据的方法,我不知道...

任何 help/comment 真的很感激!我很新,正在学习!

由于您已准备好将原始数据帧拆分为数据帧列表,因此这适合使用 lapplysapply 函数,具体取决于您希望结果是列表还是矢量。

result_vector <- sapply(Stations, function(x) { 
     mean(x$hourlymax)
})

或者,如果您想使用 dplyr 策略,则在原始数据帧上使用 group_by

result_df <- all_stations %>% group_by(month) %>%
  summarise(result = mean(hourlymax))