欢迎关注R语言数据分析指南
❝本节来分享介绍一款R包naniar主要用于探索缺失数据结构,完美兼容ggplot和tidydata。更多详细内容请参考官方文档。
官方文档
代码语言:javascript复制❝https://naniar.njtierney.com/articles/naniar.html
library(tidyverse)
ggplot(airquality,aes(x = Solar.R,y = Ozone))
geom_point()
❝Warning message: Removed 42 rows containing missing values or values outside the scale range (
geom_point()
).
该警告问题在于ggplot默认不处理缺失值,并删除缺失值。这使得它们很难探索。它还提出了一个奇怪的问题:“如何可视化不存在的东西?
代码语言:javascript复制install.packages("naniar")
library(naniar)
ggplot(airquality, aes(x = Solar.R, y = Ozone))
geom_miss_point()
同时该geom图层也完全兼容ggplot2的其它功能,例如facets
代码语言:javascript复制ggplot(airquality,aes(x = Solar.R, y = Ozone))
geom_miss_point()
facet_wrap(~Month)
代码语言:javascript复制miss_case_table(airquality)
代码语言:javascript复制# A tibble: 3 × 3
n_miss_in_case n_cases pct_cases
<int> <int> <dbl>
1 0 111 72.5
2 1 40 26.1
3 2 2 1.31
miss_case_table()将案例/行中缺失值的数量制成表格。下面显示了案例中的缺失值数量:
有 111 个案例没有缺失,约占数据的 72%。 共有 40 个案例,其中 1 个缺失,占数据的 26%。 然后有 2 个案例,其中 2 个缺失 - 这些占数据的 1%。
统计缺失值数量
代码语言:javascript复制miss_var_summary(airquality)
代码语言:javascript复制# A tibble: 6 × 3
variable n_miss pct_miss
<chr> <int> <num>
1 Ozone 37 24.2
2 Solar.R 7 4.58
3 Wind 0 0
4 Temp 0 0
5 Month 0 0
6 Day 0 0
对缺失值进行建模
代码语言:javascript复制library(rpart)
library(rpart.plot)
airquality %>%
add_prop_miss() %>%
rpart(prop_miss_all ~ ., data = .) %>%
prp(type = 4, extra = 101, prefix = "Prop. Miss = ")