专栏首页庄闪闪的R语言手册R数据科学|5.3课后习题解答

R数据科学|5.3课后习题解答

5.3.4 习题解答

问题一

研究 x、y 和 z 变量在 diamonds 数据集中的分布。你能发现什么?思考一下,对于一条钻石数据,如何确定表示长、宽和高的变量?

解答

  • 首先,计算这些变量的汇总统计信息并绘制其分布。
summary(select(diamonds, x, y, z))
#>        x               y              z       
#>  Min.   : 0.00   Min.   : 0.0   Min.   : 0.0  
#>  1st Qu.: 4.71   1st Qu.: 4.7   1st Qu.: 2.9  
#>  Median : 5.70   Median : 5.7   Median : 3.5  
#>  Mean   : 5.73   Mean   : 5.7   Mean   : 3.5  
#>  3rd Qu.: 6.54   3rd Qu.: 6.5   3rd Qu.: 4.0  
#>  Max.   :10.74   Max.   :58.9   Max.   :31.8

ggplot(diamonds) +
  geom_histogram(mapping = aes(x = x), binwidth = 0.01)
  
ggplot(diamonds) +
  geom_histogram(mapping = aes(x = y), binwidth = 0.01)
  
ggplot(diamonds) +
  geom_histogram(mapping = aes(x = z), binwidth = 0.01) 

从分布中可以看出几个特征:

  • x 比 y 和 z 大
  • 存在离群点
  • 三个变量都是右偏分布

结论:x是长度,y是宽度,z是深度。因为长度总是小于宽度,否则长度就叫做宽度。通过搜索钻石长度、宽度和深度的定义。深度可以表示为钻石的长度/宽度的百分比,这意味着它应该小于长度和宽度。

问题二

研究 price 的分布,你能发现不寻常或令人惊奇的事情吗?(提示:仔细考虑一下binwidth 参数,并确定试验了足够多的取值。)

解答

改变binwidth参数就可以查看不同范围内的变量分布啦,下面是几个示例,根据画的图可以找到很多有趣的信息哟,赶紧试试吧!

ggplot(filter(diamonds, price < 2500), aes(x = price)) +
geom_histogram(binwidth = 10, center = 0)

ggplot(filter(diamonds), aes(x = price)) +
  geom_histogram(binwidth = 100, center = 0)
  
diamonds %>%
  mutate(ending = price %% 10) %>%
  ggplot(aes(x = ending)) +
  geom_histogram(binwidth = 1, center = 0)
  
diamonds %>%
  mutate(ending = price %% 100) %>%
  ggplot(aes(x = ending)) +
  geom_histogram(binwidth = 1) 

问题三

0.99 克拉的钻石有多少?1 克拉的钻石有多少?造成这种区别的原因是什么?

解答

diamonds %>%
  filter(carat >= 0.99, carat <= 1) %>%
  count(carat)
#> # A tibble: 2 x 2
#>   carat     n
#>   <dbl> <int>
#> 1  0.99    23
#> 2  1     1558

问题四

比较并对比 coord_cartesina() 和 xlim()/ylim() 在放大直方图时的功能。如果不设置binwidth 参数,会发生什么情况?如果将直方图放大到只显示一半的条形,那么又会发生什么情况?

解答

在计算和绘制图形后,coord_cartesian()函数将放大由限制指定的区域。因为已经计算了直方图容器,所以它不受影响。

ggplot(diamonds) +
  geom_histogram(mapping = aes(x = price)) +
  coord_cartesian(xlim = c(100, 5000), ylim = c(0, 3000))
#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

但是,在计算与直方图相关的统计数据之前xlim()ylim()函数会影响操作。因此,在计算箱子宽度和计数之前,将删除x和y界限之外的值。这可能会影响直方图的外观。

本文分享自微信公众号 - 庄闪闪的R语言手册(Zss_R4ds),作者:我才是赵西西

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-12-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • R数据科学|5.5.2内容介绍及课后习题解答

    要想对两个分类变量间的相关变动进行可视化表示,需要计算出每个变量组合中的观测数量。常用的两种方法有:

    庄闪闪
  • R数据科学|3.2.4课后习题

    《R数据科学》是一本很好的R学习教材,这里给出第三章3.2.4[1]习题解答,仅供参考。如有误,望指正。

    庄闪闪
  • R数据科学|3.3课后习题

    《R数据科学》是一本很好的R学习教材,小编学习过程中,把作业题做了一下,今天给出第三章3.3[1]习题解答,仅供参考。如有误,可留言。

    庄闪闪
  • R数据科学|3.6习题解答

    这个问题是数据分析的一个基本问题:成本函数。作为分析人员,我们之所以对航班延误感兴趣,是因为对乘客来说代价高昂。在许多情况下,到达延迟更重要。在大多数情况下,迟...

    庄闪闪
  • R数据科学|5.5.1 习题解答

    前面对比了已取消航班和未取消航班的出发时间,使用学习到的知识对这个对比的可视化结果进行改善。

    庄闪闪
  • R数据科学|第十一章内容介绍

    因子在 R 中用于处理分类变量。从历史上看,因子远比字符串更容易处理。因此,R 基础包中的很多函数都自动将字符串转换为因子。

    庄闪闪
  • R数据科学|3.4内容介绍及习题解答

    通过基于变量名的操作,select()函数可以让你生成一个有用的变量子集。基本用法如下:

    庄闪闪
  • R数据科学|3.7内容介绍及习题解答

    虽然与summarize()函数结合起来使用是最有效的,但分组也可以与mutate()和filter()函数结合,以完成非常便捷的操作。示例如下:

    庄闪闪
  • R数据科学|3.5内容介绍及习题解答

    上节我们对选择现有的列进行了介绍与习题解答,现在对数据框添加新列进行介绍,这里使用mutate()函数,注意:mutate()总是将新列添加在数据集的最后。

    庄闪闪
  • R数据科学|5.4内容介绍及习题解答

    我们不建议使用这种方式,因为一个无效测量不代表所有测量都是无效的。此外,如果数据质量不高,若对每个变量都采取这种做法,那么你最后可能会发现数据已经所剩无几!

    庄闪闪
  • 七步即可学会R语言,从此数据分析不再怕!

    本文特约作者为 DataCamp 的联合创始人 Martijn Theuwissen 。更多 R 语言资源请访问这里(http://t.cn/R9Uo2po)...

    AI研习社
  • 欢迎您使用在线错题本

    在我辅导上初中的女儿时,创建了两个学习辅助网站:一个是https://www.idanci.top,鲁教5+4版初中英语背单词工具网站,另一个是网上记错题的ht...

    fanzhh
  • 【学习】如何成长为顶级数据分析师和数据挖掘师?

    #玩转大数据#12点的钟声敲响后,意味着已经跨过2015,进入2016了。新的一年应该拥有新的开端以及新的计划目标,也标志着新的希望。一个数据科学家在年尾做了一...

    小莹莹
  • 数据科学领域的职位划分以及职责技能

    随着数据科学领域的招聘信息越来越多,范围也越来越广.Datacamp根据最新的数据科学相关招聘信息,全面的了解各个行业之间数据科学领域每个职位角色之间的差异,以...

    小莹莹
  • 给R语言初学者的几个建议~

    最近有很多人在问我关于R语言学习入门的问题。 有在公众号文章留言的,有后台回复的,有加qq或者微信直接交流的、有知乎私信或者文章留言的,还有微信群里直接@我的。...

    数据小磨坊
  • 如何学习数据科学

    用户1756920
  • 【数据科学】如何学习数据科学

    本文翻译自一篇博客文章,作者是一名软件工程师,他描述了在五年时间内学习数据科学的经历和心得,他的学习途径包括了自学(书籍、博客、小项目),课程学习,教学讨论,会...

    陆勤_数据人网
  • 2 个月如何从小白到 Python 高手,牛津大学博士带你飞!

    Python 可以做任何事情。无论是从入门级选手到专业级数据挖掘、科学计算、图像处理、人工智能,Python 都可以胜任。或许是因为这种万能属性,周围好更多的小...

    小莹莹
  • 面对来势汹汹的AI大潮,你该如何应对?

    2018年1月 教育部印发的《普通高中课程方案和语文等学科课程标准》新加入了数据结构、人工智能、开源硬件设计等 AI 相关的课程。

    abs_zero

扫码关注云+社区

领取腾讯云代金券