绘制分组连续变量与二元变量的图表

3

我有一个连续的响应变量和一个二元预测变量。然而,该二元预测也有两种不同的情况(两个不同的年份)。我想创建一个箱线图,将两个年份分开但在同一列x变量中显示。

这里有一个类似于我数据框架的假设设置。

    Wingspan     Infected     Year
    15.3         1            2015
    14.9         1            2015
    15.9         0            2016  
    15.0         1            2016
    13.8         0            2015
    16.1         0            2016
    14.2         1            2015
    15.9         1            2015 
    13.7         0            2016
    16.4         0            2016
    13.9         0            2016
    14.0         1            2015

通过执行以下操作,我很容易获得输出:

    Model <- Wingspan ~ Infected
    plot(Model)

然而,我想让“感染”列每列有两个框,一个为2015年,另一个为2016年。我尝试了各种函数来拆分数据,如split()和各种bind函数,但似乎无法对这些数据进行分区并获得输出。任何想法将不胜感激。


你能提供一个可重现的例子吗?我相当确定这是一个 dplyr 的“长宽转换”问题,但需要验证一下。 - mysteRious
1
dat数据集上绘制Wingspan关于InfectedYear的箱线图。 - thelatemail
@mysteRious,这不是一个“长宽转换”的问题,可以使用这些数据完美地创建图形。但有点不清楚的是,OP想要创建哪种类型的图形。示例代码生成了一个点图,但OP提到了箱子。 - tjebo
@D.Money 请注意,我还有一个不同标题的建议。 - tjebo
@mysteRious 你的意思是我应该发布我的实际数据吗?抱歉,我是新手,这并不像看起来那么容易。 - D. Money
显示剩余2条评论
1个回答

1
这是您想要的吗:
require(read.so) #Awesome package by @Alistaire47
dat <- read.so()
require(ggplot2)

ggplot(dat, aes(as.character(Infected), Wingspan, color = as.character(Year))) + 
geom_point()
#I have used as.character in order to prevent R reading the numbers as , 
#... well... , numbers

enter image description here

编辑 1 对于箱线图,只需将 geom_point() 更改为 geom_boxplot() ...就这样 :)

编辑 2 如果想在基础 R 中使用不同的颜色,请将以下内容添加到 @thelatemail 的代码中:

boxplot(Wingspan ~ Infected + Year, data=dat, boxfill = dat$Year)
#again, try ggplot. Very rewarding, in terms of getting nice graphs.

enter image description here


这基本上就是我要找的,是的!我知道有句话说乞丐不能选择,但是...在R基础上有没有办法做到这一点?我之所以问,是因为我对ggplot语法有点不确定,而且我告诉自己应该能够使用基本命令来处理这些数据。但是非常感谢您的答案,如果找不到替代方案,我会使用它。 - D. Money
我在基础R绘图方面并不是很擅长。但是,我一定会鼓励你尝试使用ggplot。它的语法真的不复杂,而且非常灵活。 - tjebo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接