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_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 축 범위를 설정 하는데 사용 되었기 때문이며 ,이 함수는 데이터에 대해 다른 계산을 수행 할 때 플롯 범위 밖에있는 점을 제외하지 않습니다.
이 그래프와 이전 그림을 비교하면 두 번째 그림의 선형 회귀선이 약간 더 가파른 기울기를 가지고 있음을 알 수 있습니다. .
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 축 동작을 확인하여 충분한 공간이 있는지 확인하십시오.
'Program Tip' 카테고리의 다른 글
내 응용 프로그램에서 발생할 수있는 기본 제공 .NET 예외는 무엇입니까? (0) | 2020.10.30 |
---|---|
Node-Webkit 대 Electron (0) | 2020.10.30 |
해시 문자열 'android-22'로 대상을 찾지 못했습니다. (0) | 2020.10.30 |
암시 적으로 언 래핑 된 옵션으로 Swift 3 잘못된 문자열 보간 (0) | 2020.10.30 |
이 파이썬 문자열의 크기가 실패한 int 변환에서 변경되는 이유 (0) | 2020.10.30 |