美文网首页
23.关于Exploratory Data Analysis之三

23.关于Exploratory Data Analysis之三

作者: 心惊梦醒 | 来源:发表于2021-08-06 22:04 被阅读0次

【上一篇:22.关于Exploratory Data Analysis之二】
【下一篇:24.关于Exploratory Data Analysis之四】

    关于丢失值(Missing values)
    如果您在您的数据集中遇到了不寻常的值,并且只是想继续进行其余的分析,那么您有两个选择。
    1. 删除带有异常值的整行。不建议,一个变量无效不代表所有变量都无效,而且如果数据质量很差,也许筛选后就没数据了。
    2. 取而代之的建议是用missing values代替unusual valus。最简单的方式就是用mutate的修改模式(也是是执行完表达式之后还用已知的变量名):

diamonds2 <- diamonds %>% 
  mutate(y = ifelse(y < 3 | y > 20, NA, y))
#ifelse函数有三个参数,ifelse(test, yes, no)
#还有一个dplyr::case_when()函数,此处再挖坑。

    与R一样,ggplot2遵循的原则是,丢失的值永远不应该无声地丢失。在哪里绘制缺失的值并不明显,所以ggplot2不将它们包含在绘图中,但它会警告它们已经被删除:

ggplot(data = diamonds2, mapping = aes(x = x, y = y)) + 
  geom_point()
#> Warning: Removed 9 rows containing missing values (geom_point).

#用na.rm=T就不会有警告信息了
ggplot(data = diamonds2, mapping = aes(x = x, y = y)) + 
  geom_point(na.rm = TRUE)

    另一些时候,你想了解是什么使得带有缺失值的observations与有记录值的observations不同。例如,在nycflights13::flights中,dep_time变量中缺失的值表明航班被取消了。所以你可能要比较一下取消的和未取消的时间的预定的起飞时间。可以通过使用is.na()创建一个新变量来实现。

nycflights13::flights %>% 
  mutate(
    cancelled = is.na(dep_time),
    sched_hour = sched_dep_time %/% 100,
    sched_min = sched_dep_time %% 100,
    sched_dep_time = sched_hour + sched_min / 60
  ) %>% 
  ggplot(mapping = aes(sched_dep_time)) + 
    geom_freqpoly(mapping = aes(colour = cancelled), binwidth = 1/4)
取消的航班的预计起飞时间

    然而,这个图并不好,因为未取消的航班比取消的航班多得多。在下一节中,我们将探讨一些改进这种比较的技术。
    练习题
    1. 在直方图中缺失值会发生什么?柱状图中缺失的值会发生什么?为什么会有区别?
    2. na.rm = TRUE在mean()和sum()中干了什么?

    缺失值的介绍结束了,下面是关于两个变量的共同变换的介绍。

【上一篇:22.关于Exploratory Data Analysis之二】
【下一篇:24.关于Exploratory Data Analysis之四】

相关文章

网友评论

      本文标题:23.关于Exploratory Data Analysis之三

      本文链接:https://www.haomeiwen.com/subject/bdgpvltx.html