web-dev-qa-db-ja.com

NAはboxplot ggplot2にプロットされています

私はggplot2でvs.単純なboxplotをプロットしようとしています。私は、土地利用クラスに対して種の豊富さを持っています。ただし、データには2つのNAがあります。いくつかの奇妙な理由で、RによってNAとして理解されている場合でも、それらはプロットされています。それらを削除するための提案はありますか?

私が使用しているコードは:

ggplot(data, aes(x=luse, y=rich))+
  geom_boxplot(mapping = NULL, data = NULL, stat = "boxplot", position = "dodge", outlier.colour = "red", outlier.shape = 16, outlier.size = 2, notch = F, notchwidth = 0.5)+
  scale_x_discrete("luse", drop=T)+
  geom_smooth(method="loess",aes(group=1))

ただし、グラフにはルセのNAが2つ含まれています。残念ながら、画像を投稿することはできませんが、NAバーがグラフに追加されていることを想像してください。

16
R. Solar

コードの最初の行でsubset()関数を使用してみてください

ggplot(data=subset(data, !is.na(luse)), aes(x=luse, y=rich))+

で示唆されているように ggplotからのNAの除去

上記のコメントを使用して!is.na()filter()をtidyverse/dplyrから組み込むための正式な回答を次に示します。 NAのフィルタリングなどの基本的な整然とした操作がある場合は、提案されているようにggplot呼び出しで直接実行して、新しいデータフレームの作成を回避できます。

ggplot(data %>% filter(!is.na(luse)), aes(x = luse, y = rich)) + geom_boxplot()

0
user29609

Dplyr/tidyverseでfilter()関数を使用することもできます。

data %>% filter(is.na(luse) == FALSE) %>% 
   ggplot(aes(x=luse, y=rich)) +
   geom_boxplot()

この方法では、新しいオブジェクトを作成する必要はありません。

0
Luke McDonald