R数据科学练习题部分解答,持续更新

本文章作为《R数据科学》书籍练习题解答合集使用。

推荐搭配Ctrl + F搜索使用。

1.5

  1. 对于每个存在的值,都会在行或者列上新建一行或者列分面图。

  2. 表示没有该(drv',cyl')的点的数据;

    后者点与前者对应的分面图构成一一映射关系。

  3. 两者都是绘制以displ作为x轴,hwy作为y轴的分面图。前者以drv作为横向分面依据,垂直分面省略;后者以cyl作为垂直分面依据,横向分面省略。

  4. 优势:更清晰地看出不同分面依据下x~y的分布;劣势:在分面依据离散数据较多时,可能出现较多分面图。

    可以根据分面依据的离散后数据量规模大小进行取舍。

    附图形属性下绘制点状图:

R 复制代码
ggplot(mpg)+
    geom_point(mapping = aes(displ , hwy , color = class))
  1. 输出框宽度一定前提下,拖动竖状滚动条阅读数据远比横向滚动条直观方便得多。

3.5.2

  1. 前者代表起飞时间,后者代表预计起飞时间,除以60即可:
R 复制代码
(NEW <- transmute(flights , dep_time = dep_time %/% 60 , sched_dep_time = sched_dep_time %/% 60))
  1. 按循环节一一对应将前者加到后者上去,正确用法例如:
R 复制代码
> 1:2 + 1:10
#> [1]  2  4  4  6  6  8  8 10 10 12

题目报错是因为10不是3的整数倍。

5.3.4

  1. 长宽高:xyz,单位为毫米.

  2. 使用下列代码可以直观发现异常:

R 复制代码
ggplot(diamonds) +
  geom_histogram(aes(x = price) , binwidth = 20)+
  coord_cartesian(xlim = c(0 , 3000))

注意到缺少270以前以及1500左右的数据.

  1. 使用下列代码可以直观看出数量多少:
R 复制代码
diamonds %>% 
  filter(carat >= 0.99 & carat <= 1) %>%
  group_by(carat) %>%
  summarize(n = n())
# A tibble: 2 × 2
#  carat     n
#  <dbl> <int>
#1  0.99    23
#2  1     1558
  1. coord_cartesina()不会丢弃溢出数据,而xlim()/ylim()会将溢出数据更改为NA再进行绘制。
    表现在绘图上,coord_cartesina()在范围边界是填充的,而后者由于绘制图像边界并非与设定范围重合,因此会产生一定空隙.
    放大到只显示一半的条形时,前者会照常绘制,而后者会将其弃置:
R 复制代码
ggplot(diamonds , aes(x = price)) +
  geom_histogram(binwidth = 1000) +
  coord_cartesian(xlim = c(0 , 2000))

R 复制代码
ggplot(diamonds , aes(x = price)) +
  geom_histogram(binwidth = 1000) +
  xlim(c(0 , 2000))

注意

在方块宽度设置不合理时,也可能出现异常方块,例如前者代码由于绘图起点为500,因此-500,500这一区间数据会表现为一个整块,但实际上-500,250这一区间并无相关数据,仅是绘图结果使然。

相关推荐
Tanjia_kiki4 分钟前
谷歌浏览器中F12编辑并重发请求
开发语言·前端·javascript
程序猿编码7 分钟前
基于GGML的C++17轻量化语音推理引擎:说话人识别与语音分析技术全解析
开发语言·c++·pytorch·深度学习·神经网络·大模型
传奇开心果编程1 小时前
【Rust入门知识点学与练】第5课:函数
开发语言·学习·rust
秋田君1 小时前
Qt_QMediaPlayer类与QMediaPlaylist类
开发语言·qt
统计学小王子1 小时前
数学建模国赛倒计时6天——《软件工具(R语言精讲)》
开发语言·数学建模·r语言
C++ 老炮儿的技术栈1 小时前
Qt5 使用 QPainter 绘制阿基米德螺线
开发语言·c++·windows·qt·代码化
EasyGBS1 小时前
从接入到稳定播放:无插件直播H5视频流媒体播放器EasyPlayer.js如何撑起Web端流媒体
开发语言·前端·javascript
FfHUCisI1 小时前
GMP 调度器:Go 并发的心脏是如何跳动的
开发语言·golang·php
Java小白笔记1 小时前
Java 实现阿里云 OSS 文件上传链路:普通上传、秒传、分片与断点续传
java·开发语言·数据库·spring·阿里云
传奇开心果编程1 小时前
【Rust入门知识点学与练】第9课:Vec 动态数组
开发语言·学习·rust