私はこの質問の反対、そしてこの質問の反対のようなことをしたいのですが、それはプロット自体ではなく、伝説に関するものです.
他のSOの質問は、未使用の因子レベルを維持する方法について尋ねているようです。私は実際に私のものを削除したいと思います。いくつかの名前変数と、多数の棒グラフを作成するために使用している変数属性の列 (ワイド形式) がいくつかあります。再現可能な例を次に示します。
library(ggplot2)
df <- data.frame(name=c("A","B","C"), var1=c(1,NA,2),var2=c(3,4,5))
ggplot(df, aes(x=name,y=var1)) + geom_bar()
私はこれを得る:
対応する var nを持つ名前のみが棒グラフに表示されるようにしたいです (B には空白がありません)。
y=var
出力ファイル名とビットを変更するだけで、ベース プロット コードを再利用するのは非常に簡単です。可能であれば、各プロットの結果にドロップレベルを使用するためだけに、データ フレームをサブセット化する必要はありません。
na.omit()
提案に基づいて更新する
改訂されたデータセットを考えてみましょう:
library(ggplot2)
df <- data.frame(name=c("A","B","C"), var1=c(1,NA,2),var2=c(3,4,5), var3=c(NA,6,7))
ggplot(df, aes(x=name,y=var1)) + geom_bar()
NAが存在するna.omit()
ため、プロットに使用する必要があります。var1
しかし、na.omit はすべての列A
に値が存在することを確認するため、プロットはNA を持っているため、同様に削除されvar3
ます。これは私のデータにより類似しています。NAが散りばめられた合計15の応答があります。現在プロットされている y ベクトルの値を持たず、データ フレーム全体のどのベクトルにも NAを持たない因子レベルのみを削除したいと考えています。