我想将一个带引号的字符串传递给一个调用ggplot2的函数。
库(magrittr);库(GGPLOT2)g1< - function(variable){ ggplot(mtcars,aes_string(“wt”,variable,size =“carb”))+ …
解决方法是在函数中用通用名替换感兴趣的变量名:
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)
你可以使用 !! 调用后的变量操作符 sym 。这将取消引用并进行评估 variable 在周围的环境中。
!!
sym
variable
library(rlang) g1 <- function( variable ) { ggplot(mtcars, aes(x = wt, y = !! sym(variable) , size = "carb")) + geom_point() } g1("mpg") variables <- c("mpg", "cyl", "disp") variables %>% lapply(g1)