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

How to split data in column to draw box plot in R

我想绘制一个箱形图,根据另一列("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

然后我想画一个箱形图,其中方框 1 的 var2 值对应于 var_1 的下半部分,所以这是数据框 2 中的数据:

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

方框图中的方框 2 然后具有 var_2 值对应于 var_1 的上半部分,因此这是数据框 3 中的数据:

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

请问我如何在 R 中执行此操作?理想情况下,我会使用 ggplot2 with/without tidyverse。谢谢。

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

假设数据框名为 mydata:

library(tidyverse)

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

结果: