我試圖以編程方式繪製分佈使用ggplot2。非標準評估,lapply和ggplot
我不知道如何在這裏使用非標準評估(NSE)(甚至在閱讀過哈德利的書籍章節等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
。
感謝理查德,但對我來說 –
不工作,你只是試驗(即是這樣的學習練習)?如果不是,'aes_string()'很大程度上幫助變量subst。 – hrbrmstr
'x'(在lapply循環中)是一個未命名的原子向量。它沒有與'substitute'一起使用的名稱。 – LyzandeR