Expliquer l’avertissement de ggplot2: «Suppression de k lignes contenant des valeurs manquantes»

Je reçois cet avertissement lorsque j’essaie de générer un tracé avec ggplot .

Après des recherches en ligne pendant un certain temps, beaucoup ont suggéré que ma firebase database contenait soit des valeurs nulles, soit des données manquantes en général, ce qui n’était pas le cas.

Dans cette question, la réponse acceptée dit ceci:

L’avertissement signifie que certains éléments sont supprimés car ils ne correspondent pas à la plage spécifiée.

Je me demandais à quoi exactement cette gamme se référait et comment quelqu’un peut-il augmenter manuellement cette plage afin d’éviter tous les avertissements?

Le comportement que vous ggplot2 est dû à la manière dont ggplot2 traite les données situées en dehors des plages d’axe du tracé. Vous pouvez modifier ce comportement selon que vous utilisez scale_y_continuous (ou, de manière équivalente, ylim ) ou coord_cartesian pour définir les plages d’axes, comme expliqué ci-dessous.

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

Dans le code ci-dessous, un point avec hp = 335 est en dehors de la plage y du tracé. De plus, comme nous avons utilisé scale_y_continuous pour définir la plage de l’axe des ordonnées, ce point n’est inclus dans aucune autre statistique ou mesure récapitulative calculée par ggplot, telle que la ligne de régression linéaire.

 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). 

Dans le code ci-dessous, le point avec hp = 335 est toujours en dehors de la plage y du tracé, mais ce point est néanmoins inclus dans les statistiques ou mesures récapitulatives calculées par ggplot, telles que la ligne de régression linéaire. C’est parce que nous avons utilisé coord_cartesian pour définir la plage de l’axe des ordonnées, et cette fonction n’exclut pas les points qui se trouvent en dehors des plages du tracé lorsqu’il effectue d’autres calculs sur les données.

Si vous comparez ceci et le tracé précédent, vous pouvez voir que la ligne de régression linéaire dans le deuxième tracé a une pente légèrement plus raide, car le point avec hp = 335 est inclus lors du calcul de la ligne de régression, même si elle n’est pas visible .

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

Juste pour la secousse complétant la réponse donnée par eipi10.

Je faisais face au même problème, sans utiliser scale_y_continuous ni coord_cartesian .

Le conflit venait de l’axe des x, où j’ai défini des limits = c(1, 30) . Il semble que de telles limites ne fournissent pas assez d’espace si vous voulez “esquiver” vos barres, alors R lance toujours l’erreur

Suppression de 8 lignes contenant des valeurs manquantes (geom_bar)

L’ajustement des limites de l’axe x aux limits = c(0, 31) résolu le problème.

En conclusion, même si vous ne mettez pas de limites à votre axe des ordonnées, vérifiez votre comportement sur l’axe des x pour vous assurer que vous disposez de suffisamment d’espace.