2017-01-27 10 views
1

ggplot2で棒グラフを作成するには、Rで適用関数を使用する方法はありますか?ggplot2でapply関数を使用してdata.frameの複数の変数の棒グラフを作成する

私たちは因子変数だけを含むデータフレームを持っていますが、そのうちの1つはブール値です。私の場合は+40変数の日付フレームがあります。 1行のコードですべての変数をブール値に対してプロットできますか?

data("diamonds") 
factors <- sapply(diamonds, function(x) is.factor(x)) 
factors_only <- diamonds[,factors] 
factors_only$binary <- sample(c(1, 0), length(factors_only), replace=TRUE) 
factors_only$binary <- as.factor(factors_only$binary) 

しかし、私はこのようなbarplots作成したい:

qplot(factors_only$color, data=factors_only, geom="bar", fill=factors_only$binary) 

これは動作しません:

sapply(factors_only,function(x) qplot(x, data=factors_only, geom="bar", fill=binary)) 

をあなたがを介して実行するlapplyを使用することができます

+0

データを変更し、 'facet_'を使うことができます:' m = reshape2 :: melt(factors_only、id = "binary"); + msgstr "あなたのバーを' m $ 'の 'factor'を使って並べ替える必要があります。 (value、levels = unlist(lapply(factors_only、levels)))、fill = binary) ') – user20650

答えて

0

を教えてください現在の変数をプルアップするにはgetを使用します。

temp <- lapply(names(factors_only), 
       function(x) qplot(get(x), data=factors_only, geom="bar", fill=binary, xlab=x)) 

リスト項目を印刷するには、

print(temp[[1]]) 

enter image description here

を生産する変数名を走るの便利な機能を使用すると、動的に名前を付けるためにこれらを使用することができるということです図のラベル。

+0

ありがとう!それはまさに私が思いついたことです! – boobyfischer

関連する問題