私はプログラムでggplot2を使って分布をプロットしようとしています。非標準的な評価lapplyとggplot
(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))
をはOK、密度プロット、各列に対して1つの数を生成ありません。しかし、ではないはプロットされている変数の名前を表示します。むしろ、プレースホルダー変数x
が印刷されます(図参照)。
私の目標は、実際の変数名で置換されていx
引用、例えば、mpg
を持つことです。
おかげでリチャードが、私のために動作しません –
は、あなただけのつまり(実験すると、このaはある
一つの解決策は、@Jimbouに似ています学習運動)?そうでなければ、 'aes_string()'は変数substを大きく助けます。 – hrbrmstr
'x'(ループ内で)は無名の原子ベクトルです。 'substitute'と一緒に使う名前はありません。 – LyzandeR