wib*_*ley 4 r ggplot2 standard-evaluation
我想将带引号的字符串传递给调用ggplot2的函数。
library(magrittr); library(ggplot2)
g1 <- function( variable ) {
ggplot(mtcars, aes_string("wt", variable, size="carb")) +
geom_point()
}
g1("mpg")
Run Code Online (Sandbox Code Playgroud)
这很好用,但是v3.1.0文档提倡准引用和NSE aes()。
所有这些功能均已弃用。请改用整洁的评估习惯用法(请参阅aes()文档中的准引用部分)。
但是这些aes()示例使用NSE(即,g1(mpg)而不是g1("mpg"))。同样,这些SO解决方案使用NSE值或aes_()/ aes_string()。
我希望该函数接受SE /引号字符串,以容纳字符向量,例如:
variables <- c("mpg", "cyl", "disp")
variables %>%
lapply(g1)
Run Code Online (Sandbox Code Playgroud)
小智 6
您可以!!在调用后使用变量上的运算符来执行此操作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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
166 次 |
| 最近记录: |