在R / ggplot2中将字符串转换为函数参数的最佳方法是什么?

时间:2015-02-10 10:48:10

标签: r ggplot2

我正在开发一个闪亮的应用程序,用户可以选择使用ggplot2绘制哪些变量,但我完全不确定将字符串(要绘制的变量的名称)转换为合适的最佳方法函数参数。

考虑以下非常人为的工作示例:

df <- data.frame(gp = factor(rep(letters[1:3], each = 10)),
                 y = rnorm(30))

ggplot(df, aes(x = gp, y = y)) +
   geom_point() + facet_wrap(~gp)

现在,我如何告诉ggplot在x轴上绘制'gp'变量,如果我拥有的是变量名称的字符串?

我已经掀起了以下内容,但有更简单,更传统的方法吗?请注意我在aes()和facet_wrap()函数中使用的不同方法。

x.var <- "gp"

ggplot(df, aes(x=lol <- switch(x.var,"gp"=gp), y = y)) +
   geom_point() + facet_wrap(as.formula(paste("~",x.var)))

非常感谢任何见解!

1 个答案:

答案 0 :(得分:4)

如果您使用aes_string来指定xy变量而不是x=lol <- switch(x.var,"gp"=gp),那就更好了,例如使用以下内容:

ggplot(df, aes_string(x = x.var, y = 'y')) +
  geom_point() + facet_wrap(as.formula(paste("~",x.var)))

不幸的是,对于facet_wrap函数,您已经完成的工作可能是最佳方法。