standard eval with ggplot2 without `aes_string()`

前端 未结 2 1132
不知归路
不知归路 2021-01-12 23:08

I\'d like to pass a quoted string to a function that calls ggplot2.

library(magrittr); library(ggplot2)
g1 <- function( variable ) {
  ggplot(mtcars, aes_         


        
2条回答
  •  野的像风
    2021-01-12 23:30

    A work-around is to substitute a common name for the variable name of interest in your function:

    g1 <- function( variable ) {
      colnames(mtcars) <- gsub(variable, "variable", colnames(mtcars))
      ggplot(mtcars, aes(x=wt, y=variable, size=carb)) +
        geom_point() + ylab(variable)
    }
    
    variables <- c("mpg", "cyl", "disp")
    variables %>% 
      lapply(g1)
    

提交回复
热议问题