如何拆分列中的数据以在 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()
结果:
我想绘制一个箱形图,根据另一列("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()
结果: