PDF 116 / 520 Exercises
English · PDF 116
Original PDF page 116
中文 · PDF 116

(coord_cartesian() 还有一个 xlim() 参数,用于在需要缩放 x 轴时使用。ggplot2 也有 xlim() 和 ylim() 函数,但它们的工作方式略有不同:它们会丢弃范围之外的数据。)

这让我们可以看到有三个异常值:0、约 30 和约 60。我们用 dplyr 将它们提取出来:

unusual <- diamonds %>% filter(y < 3 | y > 20) %>% arrange(y) unusual #> # A tibble: 9 × 10 #> carat cut color clarity depth table price x #> #> 1 1.00 Very Good H VS2 63.3 53 5139 0.00 #> 2 1.14 Fair G VS1 57.5 67 6381 0.00 #> 3 1.56 Ideal G VS2 62.2 54 12800 0.00 #> 4 1.20 Premium D VVS1 62.1 59 15686 0.00 #> 5 2.25 Premium H SI2 62.8 59 18034 0.00 #> 6 0.71 Good F SI2 64.1 60 2130 0.00 #> 7 0.71 Good F SI2 64.1 60 2130 0.00 #> 8 0.51 Ideal E VS1 61.8 55 2075 5.15 #> 9 2.00 Premium H SI2 58.9 57 12210 8.09 #> # ... with 2 more variables: #> # y , z

y 变量测量的是这些钻石三个维度中的一个,单位为毫米。我们知道钻石的宽度不可能是 0 毫米,所以这些值一定是错误的。我们还可能怀疑 32 毫米和 59 毫米的测量值也不合理:这些钻石超过一英寸长,但价格却不到几十万美元!

比较好的做法是在包含和不包含离群值的情况下重复你的分析。如果它们对结果影响很小,而且你无法弄清它们为何存在,那么将它们替换为缺失值并继续是合理的。但是,如果它们对你的结果有重大影响,就不应该在没有正当理由的情况下丢弃它们。你需要弄清楚是什么导致了它们(例如,数据录入错误),并在报告中说明你删除了它们。

练习

    1. 探索 diamonds 中 x、y 和 z 每个变量的分布。你学到了什么?想一想钻石,以及你如何决定哪个维度是长度、宽度和深度。