2015-09-10 14 views
28

ggplotでプロットを生成しようとしているときにこの警告が表示されます。説明ggplot2警告:「欠損値を含むk行が削除されました」

しばらくの間、オンラインで調査した結果、多くの場合、自分のデータベースにはnull値または一般的なデータが含まれていないことが示唆されましたが、そうではありませんでした。

In this question受け入れ答えは、次の言葉:

、彼らが指定した範囲

から落ちるので、警告がいくつかの要素が削除されることを意味し、私はまさにこの範囲はを参照してないかと思いました。すべての警告を避けるために、どのように手動でこの範囲を増やすことができますか?

+3

を持っていることを確認するためにあなたのx軸の動作をチェックしてください。この関数のため、値は0と0.12の間で制限されます。 'ylim(0,0.12)' – LyzandeR

+1

再現可能な例は、質問に答えるのに役立ちます。 @LyzandeRは正しい軌道に乗っているようだ。 – vpipkt

答えて

33

表示されている動作は、ggplot2がプロットの軸範囲外のデータを処理するためです。以下の説明のように、scale_y_continuous(または同等の場合はylim)またはcoord_cartesianを使用して、この動作を変更できます。

library(ggplot2) 

# All points are visible in the plot 
ggplot(mtcars, aes(mpg, hp)) + 
    geom_point() 

以下のコードでは、hp = 335の1点がプロットのy範囲外です。また、y軸の範囲を設定するのにscale_y_continuousを使用したため、この点は、ggplotで計算された他の統計や集計尺度(線形回帰線など)には含まれません。以下のコードで

ggplot(mtcars, aes(mpg, hp)) + 
    geom_point() + 
    scale_y_continuous(limits=c(0,300)) + # Change this to limits=c(0,335) and the warning disappars 
    geom_smooth(method="lm") 

Warning messages: 
1: Removed 1 rows containing missing values (stat_smooth). 
2: Removed 1 rows containing missing values (geom_point). 

、HP = 335を有する点がプロットのY範囲外にまだあるが、この点は、それにもかかわらず、任意の統計又は線形回帰として計算をggplot集約尺度、に含まれていますライン。これは、coord_cartesianを使用してy軸の範囲を設定したためで、この関数はデータの他の計算を行うときにプロット範囲外の点を除外しないためです。

これと前のプロットを比較すると、2番目のプロットの線形回帰線は、回帰直線を計算するときにhp = 335の点が含まれているため、少し急勾配になりますプロットに表示されます。

0

eipi10によって与えられた答えを完了するためにちょうど振ってください。

scale_y_continuouscoord_cartesianも使用せず、同じ問題に直面していました。

私はlimits = c(1, 30)を定義したx軸から競合が発生していました。 Rは、まだエラーに限界を調整欠損値を含む8行(geom_bar)

を削除

を投げるので、あなたがバーを「かわす」にしたい場合は、このような制限は十分なスペースを提供していないようですlimits = c(0, 31)のx軸は問題を解決しました。結論として

、あなたはy軸に制限を入れていない場合でも、あなたはその質問に `y`軸上の制限があり、十分なスペース

関連する問題