Program Tip

ggplot2 경고 설명 :“결 측값이 포함 된 k 개 행 제거됨”

programtip 2020. 10. 30. 20:30
반응형

ggplot2 경고 설명 :“결 측값이 포함 된 k 개 행 제거됨”


를 사용하여 플롯을 생성하려고 할 때이 경고가 표시됩니다 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 인 한 점은 플롯의 y 범위 밖에 있습니다. 또한 scale_y_continuousy 축 범위를 설정하는 데 사용했기 때문에이 점은 선형 회귀선과 같이 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 축 범위를 설정 하는데 사용 되었기 때문이며 ,이 함수는 데이터에 대해 다른 계산을 수행 할 때 플롯 범위 밖에있는 점을 제외하지 않습니다.

이 그래프와 이전 그림을 비교하면 두 번째 그림의 선형 회귀선이 약간 더 가파른 기울기를 가지고 있음을 알 수 있습니다. .

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

eipi10에 의해 주어진 대답을 완성하는 흔들림을 위해.

나는 사용 scale_y_continuous하지 않고 같은 문제에 직면했다 coord_cartesian.

충돌은 내가 정의한 x 축에서 발생했습니다 limits = c(1, 30). 막대를 "회피"하려는 경우 이러한 제한이 충분한 공간을 제공하지 않는 것 같으므로 R은 여전히 ​​오류를 발생시킵니다.

누락 된 값이 포함 된 행 8 개 제거 (geom_bar)

limits = c(0, 31)문제 해결 하기 위해 x 축의 한계를 조정했습니다 .

결론적으로, y 축에 제한을 두지 않더라도 x 축 동작을 확인하여 충분한 공간이 있는지 확인하십시오.

참고 URL : https://stackoverflow.com/questions/32505298/explain-ggplot2-warning-removed-k-rows-tained-missing-values

반응형