如何将R中的一列按值分组以形成两个单独的箱图?

时间:2016-04-07 02:42:40

标签: r

例如,我们说我有一个像这样的高度列:

df1 <- data.frame(Col = c(70, 80, 74, 50, 59, 55, 65, 30, 55, 80))

我想将此列分成大于55或小于或等于55的组,然后制作两个箱图。这样做的最佳方式是什么?

提前致谢!

1 个答案:

答案 0 :(得分:1)

我们可以split&#39; Col&#39;基于逻辑vector并执行boxplot

boxplot(split(df1$Col, df1$Col > 55))

或使用ggplot2

library(dplyr)
library(ggplot2)
df1 %>%
  group_by(gr = factor((Col > 55)+1)) %>%
  ggplot(., aes(x=gr,y =Col))+
          geom_boxplot()

正如@rawr评论的那样,它可以在ggplot

内完成
ggplot(df1, aes(Col > 55, Col)) + 
                 geom_boxplot()

或者我们只需要一个分组变量

 (df1$Col > 55) + 1

数据

df1 <- data.frame(Col = c(70, 80, 74, 50, 59, 55, 65, 30, 55, 80))