我想将带引号的字符串传递给调用 ggplot2 的函数。
library(magrittr); library(ggplot2)
g1 <- function( variable ) {
ggplot(mtcars, aes_string("wt", variable, size="carb")) +
geom_point()
}
g1("mpg")
这很好用,但是v3.1.0 文档提倡 quasiquotation 和 NSE aes()
。
所有这些功能都被软弃用。请改用整洁的评估习语(请参阅 aes() 文档中的 quasiquotation 部分)。
但是这些aes()
示例使用 NSE(即,g1(mpg)
而不是g1("mpg")
)。同样,这些 SO 解决方案使用 NSE 值或aes_()
/ aes_string()
。
- 将 dplyr SE 与 ggplot2 一起使用
- 如何在带有 tidyr 和 ggplot2 的函数中使用 dplyr 的 enquo 和 quo_name
- 为什么 ggplot 文档中的这个 aes tidyeval 示例会引发错误?
我希望该函数接受 SE/引用的字符串,以容纳字符向量,例如:
variables <- c("mpg", "cyl", "disp")
variables %>%
lapply(g1)