如何获得R中的周和城市平均值

如何获得R中的周和城市平均值,r,aggregate,R,Aggregate,我有一个像这样的date.frame: # city date pm2.5 #1 beijing 2018-1-1 12.5 #2 beijing 2018-1-2 14 #3 beijing 2018-1-3 15 ... ... ... #365 bei

我有一个像这样的date.frame:

#         city          date       pm2.5      
#1       beijing       2018-1-1      12.5  
#2       beijing       2018-1-2       14 
#3       beijing       2018-1-3       15  
          ...           ...           ...
#365     beijing       2018-12-31     50
#366     shanghai      2018-1-1       14
#367     shanghai      2018-1-2       15
          ...             ...         ...
#730     shanghai      2018-12-31     60
如何按
周数
城市
计算变量
pm2.5
的平均值。将如下所示:

#         city          date       pm2.5      
#1       beijing       2018-1-1      12.5  
#2       beijing       2018-1-2       14 
#3       beijing       2018-1-3       15  
          ...           ...           ...
#365     beijing       2018-12-31     50
#366     shanghai      2018-1-1       14
#367     shanghai      2018-1-2       15
          ...             ...         ...
#730     shanghai      2018-12-31     60
期望输出:

#         city          weeks       pm2.5      
#1       beijing          1        13  
#2       beijing          2        14 
#3       beijing          3        15  
          ...           ...           ...
#42     beijing          42       50
#43     shanghai          1       14
#44     shanghai          2       15
          ...           ...         ...
#84     shanghai          42       55
我试着使用“每周申请”,但没有成功


非常感谢。

使用
聚合
。使用
transform
ed数据将日期格式化为
%W
eek编号。例如:


使用
聚合
。使用
transform
ed数据将日期格式化为
%W
eek编号。例如:

试试这个:

首先将日期转换为周,然后使用
group\u by
计算每个城市和每周的平均值

为此,您需要
dplyr

library(dplyr)

data.frame_result = data.frame1 %>%
  mutate(weeks = format(as.Date(date, "%Y-%m-%d"), "%V")) %>%
  group_by(city, weeks) %>%
  summarize(avgPM25 = mean(as.numeric(pm2.5))) %>%
  ungroup()
试试这个:

首先将日期转换为周,然后使用
group\u by
计算每个城市和每周的平均值

为此,您需要
dplyr

library(dplyr)

data.frame_result = data.frame1 %>%
  mutate(weeks = format(as.Date(date, "%Y-%m-%d"), "%V")) %>%
  group_by(city, weeks) %>%
  summarize(avgPM25 = mean(as.numeric(pm2.5))) %>%
  ungroup()

从哪个包开始
apply.weekly()
。请展示您的代码如何使用它,并提供可复制的数据!从哪个包开始
apply.weekly()
。请展示您的代码如何使用它,并提供可复制的数据!