我经常在工作中使用ggplot2并构建包装函数来加快我的工作流程。使用非标准评估 (NSE)aes
迫使我使用实际的变量名而不是传递字符串。所以我复制并重命名数据框和变量名来安抚ggplot2。一定有更好的方法。如何让ggplot2通过函数包装器接受未知的数据框和列名,而不复制数据框并使用通用列名?
这有效:
ggplot(mtcars, aes(x=mpg, y=hp)) +
geom_point()
这不会:
FUN <- function(dat, x, y) {
ggplot(dat, aes(x = x, y = y)) +
geom_point()
}
FUN(mtcars, "mpg", "hp")