R 使用ggplot 2为同一绘图上的是/否变量创建两个单独的方框图

R 使用ggplot 2为同一绘图上的是/否变量创建两个单独的方框图,r,ggplot2,data-science,R,Ggplot2,Data Science,我试图创建一个x轴上有一个二进制1/2变量的箱线图。当我使用ggplot创建箱线图和循环时,我只得到一个以1.5为中心的大箱线图,而我希望箱线图为1,箱线图为2。我是新来的,所以任何帮助和额外的阅读将不胜感激。下面是代码 myboxplot <- function(mydata=ivf_dataset, myexposure, myoutcome ) { bp <- ggplot(mydata, aes_(as.name(myexposure), as.name(myout

我试图创建一个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
myboxplot以下内容将满足您的要求。
诀窍是
获取要绘制的变量的值,因为要将它们作为字符串传递给函数

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")
库(ggplot2)
种子集(7153)

ivf_数据集感谢您的回复。就像我说的,我在这方面是新手,所以为了使变量成为一个因素,我需要通过修改我的数据集来做到这一点,还是在函数中有一种简单的方法来做到这一点?检查我的回答谢谢,这确实有效。但是,你对“get”函数如何工作有什么好的理解吗?@dilloyd嗯,这里有
帮助(“get”)
源代码R是开源的。但我必须承认,我从来没有读过它(来源)。也可以看看这些答案&
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")