我想将一个带引号的字符串传递给调用ggplot2的函数。
library(magrittr); library(ggplot2)
g1 <- function( variable ) {
ggplot(mtcars, aes_string("wt", variable, size="carb")) +
geom_point()
}
g1("mpg")
这个方法很有效,但v3.1.0文档提倡准引用和NSE
aes()
。
所有这些函数都已被软弃用。请改用整洁评估惯用语(请参见aes()文档中的准引用部分)。
但是aes()
示例使用NSE(即g1(mpg)
而不是g1("mpg")
)。同样,这些SO解决方案使用NSE值或aes_()
/aes_string()
。
- 使用dplyr SE与ggplot2
- 如何在函数中使用dplyr的enquo和quo_name,并结合tidyr和ggplot2使用
- 为什么来自ggplot文档的这个aes tidyeval示例会抛出错误?
我希望该函数接受一个SE/引用字符串,以适应字符向量,例如:
variables <- c("mpg", "cyl", "disp")
variables %>%
lapply(g1)
ensym()
而不是sym()
?还有其他的区别或稳定性上的优势吗? - wibeasley