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

简介: 5.3.4 习题解答

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界限之外的值。这可能会影响直方图的外观。

目录
相关文章
|
5月前
|
数据采集 存储 算法
数据挖掘1——课后习题
数据挖掘1——课后习题
149 0
|
8月前
|
机器学习/深度学习 算法
期末复习【机器学习】2
期末复习【机器学习】2
46 0
|
8月前
|
机器学习/深度学习
期末复习【机器学习】3
期末复习【机器学习】3
71 1
|
8月前
|
机器学习/深度学习 算法 数据挖掘
期末复习【机器学习】1
期末复习【机器学习】1
90 0
|
8月前
|
机器学习/深度学习 算法 数据挖掘
期末复习【机器学习】4
期末复习【机器学习】4
79 0
|
8月前
|
自然语言处理
[软件工程导论(第六版)]第4章 形式化说明技术(课后习题详解)
[软件工程导论(第六版)]第4章 形式化说明技术(课后习题详解)
|
机器学习/深度学习 数据采集 自然语言处理
机器学习课后思考-绪论
机器学习课后思考-绪论
128 0
机器学习课后思考-绪论
R数据科学|3.2.4课后习题
《R数据科学》是一本很好的R学习教材,这里给出第三章3.2.4[1]习题解答,仅供参考。如有误,望指正。
409 0
|
数据可视化
R数据科学|5.5.2内容介绍及课后习题解答
要想对两个分类变量间的相关变动进行可视化表示,需要计算出每个变量组合中的观测数量。常用的两种方法有
417 0
R数据科学|5.5.2内容介绍及课后习题解答
|
数据可视化 大数据