绘制GG中的值按时间分组绘制,其中一组为平均值的一行,另一组为R中的各行

绘制GG中的值按时间分组绘制,其中一组为平均值的一行,另一组为R中的各行,r,ggplot2,R,Ggplot2,我有一个从2010年到2015年各州每年酒精治疗率的数据集。其中五个州接受了干预,其余州没有。我想将每个干预状态的治疗率绘制为一条单独的线,并将非干预状态(使用平均值分组为一条线)绘制在同一个图表上 我想使用R中的ggplot来实现这一点。我有下面的代码,其中独立地绘制了每个状态的治疗率,但是,通过将干预变量与状态变量包括在一起,我很难格式化分组变量以满足我上面描述的条件。任何帮助都将不胜感激。提前谢谢你 我对R相当陌生,所以我希望我能正确地解释这一点。数据集保存为列表,下面是一些显示结构片段的

我有一个从2010年到2015年各州每年酒精治疗率的数据集。其中五个州接受了干预,其余州没有。我想将每个干预状态的治疗率绘制为一条单独的线,并将非干预状态(使用平均值分组为一条线)绘制在同一个图表上

我想使用R中的ggplot来实现这一点。我有下面的代码,其中独立地绘制了每个状态的治疗率,但是,通过将干预变量与状态变量包括在一起,我很难格式化分组变量以满足我上面描述的条件。任何帮助都将不胜感激。提前谢谢你

我对R相当陌生,所以我希望我能正确地解释这一点。数据集保存为列表,下面是一些显示结构片段的虚拟数据

year    state   Intervention    rate
2010    Alabama 0   0.006575294
2011    Alabama 0   0.002244153
2012    Alabama 0   0.002519527
2013    Alabama 0   0.00333051
2014    Alabama 0   0.002385317
2015    Alabama 0   0.003080964
2010    Alaska  1   0.00338454
2011    Alaska  1   0.003457992
2012    Alaska  1   0.002784511
2013    Alaska  1   0.00356925
2014    Alaska  1   0.004599099
2015    Alaska  1   0.004204394
2010    Arizona 0   0.002336875
2011    Arizona 0   0.002808161
2012    Arizona 0   0.00299025
2013    Arizona 0   0.0022956

最简单的方法可能是根据干预的状态分离数据。我已经生成了一个更大的虚拟数据集,它的形状应该与您提供的数据相似

库(ggplot2)
种子集(1234)
州4 2013阿拉巴马州0-2.575862
#>5 2014阿拉巴马州0-3.053054
#>6 2015阿拉巴马州0-4.051441
如果在打印时需要单独处理这些数据,则更容易分离数据。可以在图层的
data
参数中对数据进行子集设置。据我所知,您希望分别使用
interference==1
绘制状态,因此我们使用常规的
geom_line()
来实现这一点。然后,我们希望使用
interference==0来汇总所有状态,为此,我们使用
stat\u summary()
函数。我们需要为汇总的数据设置一个公共组,因为我们希望对不同的州进行汇总

ggplot(df,aes(x=year,y=rate,group=state))+
几何线(
数据=~子集(,干预==1),
aes(颜色=状态)
) +
统计摘要(
数据=~子集(,干预==0),
aes(组=-1),
fun.data=平均值,
geom=“line”,尺寸=2
)

由(v1.0.0)于2021年2月24日创建

后续行动:

您需要为每个几何体重复
stat\u summary()
层。例如:添加具有平均+/-sd值的功能区:

stat\u摘要(
数据=~子集(,干预==0),
aes(组=-1),
fun.data=函数(x){

mx您可以包括一些(虚拟的)数据和你的问题?如果我们不知道数据的结构,很难看到绘图代码应该是什么样子。是的,谢谢你的评论。添加了虚拟数据。非常感谢。这非常有帮助。这是一个很棒的社区。每天学习越来越多。跟进:我想在ea添加标准错误条每行每一年打勾。修改代码时,我认为我应该在stat\u摘要中添加geom=“errorbar”。但我得到了一个错误,因为已经有geom=“line”命令“```````”+stat\u摘要(data=~subset(,Intervention==0),aes(group=-1),fun.data=mean\u se,geom=“errorbar”,geom=“line”,size=2)``统计摘要中的错误(数据=~子集(,,干预==0),aes(组=-1),:形式参数“geom”由多个实际参数匹配您不能从一个层生成两个geom,您需要重复摘要。请参阅编辑。非常感谢!!我将把karma向前传递。
ggplot(data = data, aes(x = year, y = treatment_rate, group= state))+
  geom_line()