问题描述
我想制作一个使用ggplot
和facet_wrap
的函数,并将函数变量传递给facet。
我可以使用带引号的参数执行以下操作。
library(tidyverse)
my_grid_plot <- function(facet_by){
ggplot(mtcars,aes(wt,disp)) +
geom_point() +
facet_wrap(facet_by)
}
my_grid_plot(facet_by = 'am')
my_grid_plot(facet_by = 'vs')
my_grid_plot(facet_by = c('am','vs'))
但是,我想使用不带引号的参数来做到这一点,例如
# does not work yet; this is what I want
my_grid_plot(facet_by = am)
my_grid_plot(facet_by = vs)
my_grid_plot(facet_by = c(am,vs))
我知道我可以将vars
与facet_wrap
一起使用,例如
ggplot(mtcars,disp)) +
geom_point() +
facet_wrap(vars(am,vs))
所以我可以做这样的事情
my_grid_plot2 <- function(facet_by){
ggplot(mtcars,disp)) +
geom_point() +
facet_wrap(vars({{facet_by}}))
}
# works fine
my_grid_plot2(am)
my_grid_plot2(vs)
但是如果facet_by
是向量,那将行不通。
# does not work; obscure error
my_grid_plot2(c(am,vs))
那么有没有一种方法可以得到我想要的东西,即facet_by
采用名称向量的单个变量名吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)