data.frame에서 누락 된 값을보고하는 우아한 방법
다음은 데이터 프레임에서 누락 된 값이있는 변수를보고하기 위해 작성한 코드입니다. 이 작업을 수행하는 더 우아한 방법, 아마도 data.frame을 반환하는 방법을 생각하고 있지만 갇혀 있습니다.
for (Var in names(airquality)) {
missing <- sum(is.na(airquality[,Var]))
if (missing > 0) {
print(c(Var,missing))
}
}
편집 : 저는 수십에서 수백 개의 변수가있는 data.frame을 다루고 있으므로 누락 된 값이있는 변수 만보고하는 것이 중요합니다.
그냥 사용 sapply
> sapply(airquality, function(x) sum(is.na(x)))
Ozone Solar.R Wind Temp Month Day
37 7 0 0 0 0
apply
또는 다음 colSums
에서 만든 행렬을 사용할 수도 있습니다.is.na()
> apply(is.na(airquality),2,sum)
Ozone Solar.R Wind Temp Month Day
37 7 0 0 0 0
> colSums(is.na(airquality))
Ozone Solar.R Wind Temp Month Day
37 7 0 0 0 0
map_df
purrr와 함께 사용할 수 있습니다 .
library(mice)
library(purrr)
# map_df with purrr
map_df(airquality, function(x) sum(is.na(x)))
# A tibble: 1 × 6
# Ozone Solar.R Wind Temp Month Day
# <int> <int> <int> <int> <int> <int>
# 1 37 7 0 0 0 0
(너무 넓지 않은) 데이터에 대한 나의 새로운 즐겨 찾기는 우수한 naniar 패키지의 메서드입니다 . 빈도뿐만 아니라 누락 패턴도 얻습니다.
library(naniar)
library(UpSetR)
riskfactors %>%
as_shadow_upset() %>%
upset()
누락이있는 산점도를 플로팅하여 얻을 수있는 비결 측과 관련하여 누락이 어디에 있는지 확인하는 것이 유용합니다.
ggplot(airquality,
aes(x = Ozone,
y = Solar.R)) +
geom_miss_point()
또는 범주 형 변수의 경우 :
gg_miss_fct(x = riskfactors, fct = marital)
이러한 예는 다른 흥미로운 시각화를 나열하는 패키지 비 네트 에서 가져온 것 입니다.
더 간결 : sum(is.na(x[1]))
그건
x[1]
첫 번째 열을보세요is.na()
그것이 사실이라면NA
sum()
TRUE
이다1
,FALSE
있다0
summary(airquality)
이미이 정보를 제공합니다
VIM의 패키지는 data.frame 데이터 플롯 누락 멋진을 제공합니다
library("VIM")
aggr(airquality)
또 다른 그래픽 대안- plot_missing
우수한 DataExplorer
패키지의 기능 :
문서 는 또한 추가 분석을 위해이 결과를 저장할 수 있다는 사실을 지적합니다 missing_data <- plot_missing(data)
.
누락 된 데이터를 확인하는 데 도움이되는 또 다른 함수는 funModeling 라이브러리의 df_status입니다.
library(funModeling)
iris.2는 일부 추가 된 NA가있는 홍채 데이터 세트입니다.이를 데이터 세트로 바꿀 수 있습니다.
df_status(iris.2)
그러면 각 열에있는 NA의 수와 백분율이 제공됩니다.
그래픽 솔루션이 하나 더있는 경우 visdat
패키지 는 vis_miss
.
library(visdat)
vis_miss(airquality)
Amelia
상자에서 누락 된 부분에 대해 % s를 제공하는 작은 차이를 제외 하면 출력과 매우 유사합니다 .
Amelia 라이브러리는 누락 된 데이터를 처리하는 데 훌륭하다고 생각합니다. 누락 된 행을 시각화하기위한 맵도 포함되어 있습니다.
install.packages("Amelia")
library(Amelia)
missmap(airquality)
다음 코드를 실행하면 na의 논리 값이 반환됩니다.
row.has.na <- apply(training, 1, function(x){any(is.na(x))})
또 다른 그래픽 및 대화식 방법은 라이브러리의 is.na10
함수 를 사용하는 것입니다 heatmaply
.
library(heatmaply)
heatmaply(is.na10(airquality), grid_gap = 1,
showticklabels = c(T,F),
k_col =3, k_row = 3,
margins = c(55, 30),
colors = c("grey80", "grey20"))
큰 데이터 세트에서는 잘 작동하지 않을 것입니다 ..
특정 열에 대해 수행하려면 다음을 사용할 수도 있습니다.
length(which(is.na(airquality[1])==T))
ExPanDaR의 패키지 기능 prepare_missing_values_graph
을 사용하여 패널 데이터를 탐색 할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/8317231/elegant-way-to-report-missing-values-in-a-data-frame
'Programing' 카테고리의 다른 글
5 개의 오류 후에 GCC를 중지하도록 지시하는 방법은 무엇입니까? (0) | 2020.10.27 |
---|---|
Python 정수 범위 (0) | 2020.10.27 |
여러 파일로 구성된 Go 프로그램을 컴파일하는 방법은 무엇입니까? (0) | 2020.10.26 |
히스토리없이 새 브랜치를 푸시하는 방법 (0) | 2020.10.26 |
Facebook의 sharer.php를 어떻게 사용자 정의합니까? (0) | 2020.10.26 |