R:根据其他因素在ggplot中拆分数据

时间:2017-06-27 16:44:34

标签: r ggplot2

我是R的初学者,所以我没有多少经验。尝试根据感染状态在分组中拆分散点图时遇到了问题。我的数据集由本例中的对数转换抗体水平 logapfhap2 组成。感染状态任何Pf inf 被编码为是或否,并提供有关在随访期间是否有人被感染的信息。我正在绘制时间点(x)与抗体水平(y)。对于时间点1和14,我想根据感染状况制作2组。

这是我用来绘制数据而不分组的代码的主要部分:

ggplot() + 
    geom_jitter(data=data2, aes(x='1', y=logapfhap2, colour='PfHAP2A')) + 
    geom_jitter(data=data2,aes(x='14', y=logbpfhap2, colour='PfHAP2B')) + 
    geom_jitter(data=TRC, aes(x='C', y=PfHAP2, colour='PfHAP2C'))

导致此图表:

enter image description here

然后我试图将它分开(我只在这里显示第一个时间点),这会返回一个错误。

ggplot() + 
    geom_jitter(data=data2[data2$any_Pf_inf=='Yes'], 
                aes(x='1inf', y=logapfhap2[data2$any_Pf_inf=='Yes'], 
                colour='PfHAP2A')) + 
    geom_jitter(data=data2[data2$any_Pf_inf=='No'], 
                aes(x='1un', y=logapfhap2[data2$any_Pf_inf=='No'], 
                colour='PfHAP2B')) 

我想创建此图enter image description here,但我收到此错误:

  

错误:逻辑索引向量的长度必须为1或55,得到:482

希望这很清楚!任何人都可以帮我解决这个问题吗?谢谢!

EDIT 不确定这是否更清楚,但这是我的数据: enter image description here enter image description here

1 个答案:

答案 0 :(得分:1)

我刚试了一些其他的东西,现在我已经解决了!

ggplot()+ 
      geom_jitter(data=data2[data2$any_Pf_inf=='Yes',], 
          aes(x='1inf', y=logapfhap2, 
          colour='PfHAP2A')) + 
      geom_jitter(data=data2[data2$any_Pf_inf=='No',],
          aes(x='1un', y=logbpfhap2, 
          colour='PfHAP2B'))

显然你必须在[data2 $ any_Pf_inf =='是',]之后添加一个逗号来提取行而不是列。