40

Rを使い始めたばかりなので、ここでの非常に基本的な質問ですが、ggplot2で因子数の棒グラフを作成しようとしています。プロットすると、実際のレベルを表す14個の小さな色付きのブリップが表示され、サンプル内の 5000 程度の NA を表します (これは、サンプルの約 5% にのみ適用される質問からの調査データです)。次のコードを無駄に試しました:

ggplot(data = MyData,aes(x= the_variable, fill=the_variable, na.rm = TRUE)) + 
   geom_bar(stat="bin") 

ここで na.rm 引数を追加しても、明らかな効果はありません。

その間

ggplot(data = na.omit(MyData),aes(x= the_variable, fill=the_variable, na.rm = TRUE)) + 
   geom_bar(stat="bin") 

私にくれます

「エラー: 美学は長さ 1 であるか、データと同じ長さでなければなりません」

na.omit()the_variable に、または MyData と the_variable の両方に付加する場合と同様です。

私がやりたいことは、グラフから巨大な NA バーを削除することだけです。誰かがこれを行うのを手伝ってくれませんか?

4

6 に答える 6

10

問題を解決したかどうかはわかりません。この問題については、dplyr パッケージの「フィルター」機能を使用できます。アイデアは、関心のある変数の値が NA ではない観測/行をフィルタリングすることです。次に、これらのフィルター処理された観測を使用してグラフを作成します。以下のコードを見つけることができます。データ フレームと変数の名前はすべて、質問のプロンプトからコピーされていることに注意してください。また、パイプ演算子を知っていると思います。

library(tidyverse) 

MyDate %>%
   filter(!is.na(the_variable)) %>%
     ggplot(aes(x= the_variable, fill=the_variable)) + 
        geom_bar(stat="bin") 

プロット上の迷惑な NA を削除できるはずです。これがうまくいくことを願っています:)

于 2018-01-11T02:45:48.540 に答える