1. ホーム
  2. r

[解決済み] ggplot2 の警告を説明する。"欠損値を含む k 行を削除しました"

2023-01-04 21:33:35

質問

でプロットしようとすると、この警告が表示されます。 ggplot .

しばらくオンラインで調査した後、多くの人が、私のデータベースには null 値または一般的に欠落したデータが含まれていると示唆しましたが、そうではありませんでした。

この質問では では、受理された回答は次のように書かれています。

警告は、いくつかの要素が指定された範囲から外れるため、削除されることを意味します。

この範囲は正確に何を指すのでしょうか。また、すべての警告を回避するために、誰かが手動でこの範囲を拡大するにはどうすればよいのでしょうか。

どのように解決するのですか?

あなたが見ている動作は、以下の方法によるものです。 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範囲外になっています。また scale_y_continuous を使用してy軸の範囲を設定したため、この点は線形回帰線のような、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の点が含まれるからです。

ggplot(mtcars, aes(mpg, hp)) + 
  geom_point() +
  coord_cartesian(ylim=c(0,300)) +
  geom_smooth(method="lm")