R ggplot中的面板数据移动平均值

R ggplot中的面板数据移动平均值,r,ggplot2,dplyr,R,Ggplot2,Dplyr,我使用的面板数据如下所示: library(dplyr) library(ggplot2) df <- tibble(id = rep(1:5, each = 12), year = rep(2009:2020, 5), moved = c(1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0

我使用的面板数据如下所示:

library(dplyr)
library(ggplot2)

df <- tibble(id = rep(1:5, each = 12),
             year = rep(2009:2020, 5),
             moved = c(1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0,
                       1, 0, 1, 0 , 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0 , 1, 0),
             occupation = c('carpenter','carpenter', 'carpenter', 'carpenter', 'carpenter', 'cleaner',
                            'cleaner', 'cleaner', 'cleaner', 'cleaner', 'mechanic', 'mechanic',
                            'mechanic', 'mechanic', 'mechanic', 'carpenter', 'carpenter', 'carpenter',
                            'carpenter', 'carpenter', 'cleaner', 'mechanic', 'carpenter', 'cleaner',
                            'cleaner', 'carpenter', 'cleaner', 'mechanic', 'mechanic', 'mechanic',
                            'carpenter','carpenter', 'carpenter', 'carpenter', 'carpenter', 'cleaner',
                            'cleaner', 'cleaner', 'cleaner', 'cleaner', 'mechanic', 'mechanic',
                            'mechanic', 'mechanic', 'mechanic', 'carpenter', 'carpenter', 'carpenter',
                            'carpenter', 'carpenter', 'cleaner', 'mechanic', 'carpenter', 'cleaner',
                            'cleaner', 'carpenter', 'cleaner', 'mechanic', 'mechanic', 'mechanic'))

现在,我想重新制作面板,以便获得“移动”的2年移动平均值。是否可以通过使用ggplot来实现这一点,或者我需要重新制作面板?最佳解决方案是什么?

这是一种可能的解决方案。通常最好在数据帧中执行计算。这里有一种方法。我对最终的图形应该是什么样子做了一些假设,因为问题中没有要求,所以我选择了清晰

库(dplyr)
图书馆(tidyr)
图书馆(动物园)
图书馆(GG2)
#资料
df%
总结(m_移动=平均(移动))%>%
变异(m_avg=rollmean(m_moves,2,fill=NA,align=“right”))%>%
枢轴长度(cols=c(m_移动,m_平均值),名称到“avg”,值到“val”)
#密谋
ggplot(df1,aes(年份,val))+
几何线(aes(线型=平均值,颜色=占用))+
刻度线类型离散(标签=c(“2年移动平均线”,“平均移动”))+
面_包裹(~职业,ncol=1)+
指南(颜色=假)+
实验室(linetype=“平均测量:”)+
主题(legend.position=“底部”)
#>警告:已删除包含缺失值的3行(几何路径)。


由(v0.3.0)于2020年5月11日创建,这是一个可能的解决方案。通常最好在数据帧中执行计算。这里有一种方法。我对最终的图形应该是什么样子做了一些假设,因为问题中没有要求,所以我选择了清晰

库(dplyr)
图书馆(tidyr)
图书馆(动物园)
图书馆(GG2)
#资料
df%
总结(m_移动=平均(移动))%>%
变异(m_avg=rollmean(m_moves,2,fill=NA,align=“right”))%>%
枢轴长度(cols=c(m_移动,m_平均值),名称到“avg”,值到“val”)
#密谋
ggplot(df1,aes(年份,val))+
几何线(aes(线型=平均值,颜色=占用))+
刻度线类型离散(标签=c(“2年移动平均线”,“平均移动”))+
面_包裹(~职业,ncol=1)+
指南(颜色=假)+
实验室(linetype=“平均测量:”)+
主题(legend.position=“底部”)
#>警告:已删除包含缺失值的3行(几何路径)。

由(v0.3.0)于2020年5月11日创建

ggplot(df,aes(x=year,y=moved,col=occupation)) +
  stat_summary(fun=mean,geom="line",alpha=0.7, size=1)