在ggplot2中绘制两个具有相同y变量但具有不同x变量的箱形图

问题描述

我有一个包含3列的数据集。一种是每月支出(y变量)。此变量中的每个值在两个不同的变量下分为1或0。

数据看起来像这样:

  df_UP.q234_month_exp df_UP.LFT df_UP.LF
1                   NA         0        1
2                   NA         1        1
3                12000         1        1
4                   NA         1        1
5                20000         1        1
6                   NA         0        1

数据约有1200行。

我想要一个为'df_UP.LFT'的所有行都为1的'df_UP.q234_month_exp'创建一个箱型图作为y变量的图,并且在同一图中另一个箱型图具有相同的y变量,但是对于“ df_UP.LF”的所有行都是1。

如何使用ggplot2完成此操作?

解决方法

您可以尝试以下方法:

library(tidyverse)
#Data
df <- structure(list(df_UP.q234_month_exp = c(NA,NA,12000L,20000L,NA),df_UP.LFT = c(0L,1L,0L),df_UP.LF = c(1L,1L)),class = "data.frame",row.names = c("1","2","3","4","5","6"))

代码:

df %>% pivot_longer(cols = -df_UP.q234_month_exp) %>%
  filter(value==1) %>% ggplot()+
  geom_boxplot(aes(x = name,y = df_UP.q234_month_exp,color=name,group=name))

输出:

enter image description here