如何在列中拆分数据以在R中绘制箱形图

时间:2019-05-08 03:41:22

标签: r ggplot2 boxplot

我想根据另一列(以下“ var_1”)中的数据绘制一个箱形图,将一列(以下为“ var_2”)中的数据分成两个框。

具体来说,我有这些数据(主数据帧1):

id  var_1   var_2
A   1   0.13
B   3   0.25
E   5   0.22
F   6   0.43
G   2   0.11
H   4   0.38

然后,我想绘制一个箱形图,该箱形图具有与var_1的下半部分相对应的var2的值作为框1,即数据帧2中的数据:

id  var_1   var_2
A   1   0.13
G   2   0.11
B   3   0.25

然后,方框图中的方框2具有与var_1的上半部分相对应的var_2值,即数据帧3中的数据:

id  var_1   var_2
H   4   0.38
E   5   0.22
F   6   0.43

请问如何在R中执行此操作?我理想情况下将ggplot2与/不带tidyverse一起使用。谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用ntile(var_1, 2)将值划分为顶部和底部。

假设数据帧名为mydata

library(tidyverse)

mydata  %>% 
mutate(q = factor(ntile(var_1, 2))) %>% 
ggplot(aes(q, var_2)) + 
geom_boxplot()

结果:

enter image description here