使用 ggplot 2 在同一图上为 yes/no 变量创建两个单独的箱线图

Creating two separate Boxplots for yes/no variable on same plot using ggplot 2

我正在尝试创建一个箱线图,其中 x 轴上有一个二进制 1/2 变量。当我使用 ggplot 创建我的箱线图和循环时,我只得到一个以 1.5 为中心的大箱线图,而我想要一个 1 处的箱线图和一个 2 处的箱线图。我是新手,所以任何帮助和额外阅读将不胜感激。下面是代码。

myboxplot <- function(mydata=ivf_dataset, myexposure, myoutcome  )
  {
  bp <- ggplot(mydata, aes_(as.name(myexposure), as.name(myoutcome))) +
     geom_boxplot() 
      print(bp)
  }
 myboxplot(myexposure = "ART_CURRENT", myoutcome = "H19_DMR_mean")
myboxplot <- function(mydata=ivf_dataset, myexposure, myoutcome  )
  {
  bp <- ggplot(mydata, aes_(myexposure, as.factor(myoutcome))) +
     geom_boxplot() 
      print(bp)
  }
 myboxplot(myexposure = "ART_CURRENT", myoutcome = "H19_DMR_mean")

如果要根据变量值绘制多个箱线图,该变量必须是一个因子!

下面就按你的意思做吧
诀窍是 get 您要绘制的变量的值,因为您将它们作为字符串传递给函数。

library(ggplot2)

set.seed(7153)
ivf_dataset <- data.frame(
  ART_CURRENT = sample.int(2, 100, TRUE),
  H19_DMR_mean = rnorm(100)
)

myboxplot <- function(mydata=ivf_dataset, myexposure, myoutcome  ){
  bp <- ggplot(mydata, aes(x = as.factor(get(myexposure)), y = get(myoutcome))) +
    geom_boxplot() 
  print(bp)
}
myboxplot(myexposure = "ART_CURRENT", myoutcome = "H19_DMR_mean")