我正在尝试使用 ggplot2 以编程方式绘制分布。
我无法弄清楚如何在这里使用非标准评估(NSE)(即使在阅读了 Hadley 的 NSE 书籍章节等之后)。
考虑以下代码:
library(ggplot2)
gg_dens <- function(x){
eval(ggplot(data.frame(x), aes_string(x = substitute(x))) + geom_density() +
ggtitle(substitute(x)), data.frame(x))
}
lapply(mtcars, function(x) gg_dens(x))
这段代码确实产生了许多密度图,每列一个,好的。但是,它不会打印正在绘制的变量的名称。而是打印占位符变量x
(参见图)。
我的目标是x
用真实变量名替换引号,例如mpg
.