R数据科学(第2版)
R数据科学(第2版)
Hadley Wickham, Mine Çetinkaya-Rundel, Garrett Grolemund
张敬信, 王小宁, 黄俊文 译
出版时间:2026年02月
页数:471
“第2版的更新可谓‘惊艳’,让这本首屈一指的R数据科学指南焕发出新的生命力。凡是与数据打交道的人,都应该读读这本书!”
——Emma Rand
英国约克大学教授

本书是数据科学与数据分析领域的权威指南,教读者用R将数据转化为洞见、知识与理解力。通过本书,读者将学习如何使用R与RStudio开展数据科学工作,并掌握tidyverse——一组相互协作的R包,旨在让数据科学变得更简单、更高效、更有趣。
即使你没有任何编程经验,本书也能帮你快速上手,学会如何导入、变换与可视化数据,并有效地传达分析结果。你将掌握数据科学全流程,并熟练运用核心工具。第2版全面更新至tidyverse的最新功能与最佳实践,新增章节讲解如何从电子表格、数据库与网站获取数据。配套练习帮助你巩固所学、边学边练。
你将学习以下内容:
● 可视化:创建图形,用于探索数据并传达结论。
● 变换:识别变量类型并灵活使用相应工具。
● 导入:将数据高效导入R并整理为便于分析的形式。
● 编程:掌握R编程,更清晰、高效地解决数据问题。
● 交流:借助Quarto将代码、输出结果及文本集于一体。
  1. 译者序
  2. 引言
  3. 第一部分 全流程
  4. 第1章 数据可视化
  5. 1.1 引言
  6. 1.2 起步阶段
  7. 1.2.1 penguins数据框
  8. 1.2.2 终极目标
  9. 1.2.3 创建ggplot图形
  10. 1.2.4 添加美学和图层
  11. 1.2.5 练习题
  12. 1.3 ggplot2调用
  13. 1.4 可视化分布
  14. 1.4.1 分类变量
  15. 1.4.2 数值变量
  16. 1.4.3 练习题
  17. 1.5 可视化关系
  18. 1.5.1 数值变量与分类变量
  19. 1.5.2 两个分类变量
  20. 1.5.3 两个数值变量
  21. 1.5.4 三个及三个以上变量
  22. 1.5.5 练习题
  23. 1.6 保存图形
  24. 1.7 常见问题
  25. 1.8 小结
  26. 第2章 工作流:基础
  27. 2.1 编程基础
  28. 2.2 注释
  29. 2.3 命名对象
  30. 2.4 调用函数
  31. 2.5 练习题
  32. 2.6 小结
  33. 第3章 数据变换
  34. 3.1 引言
  35. 3.1.1 准备工作
  36. 3.1.2 nycflights13
  37. 3.1.3 dplyr基础
  38. 3.2 操作行
  39. 3.2.1 filter()
  40. 3.2.2 常见错误
  41. 3.2.3 arrange()
  42. 3.2.4 distinct()
  43. 3.2.5 练习题
  44. 3.3 操作列
  45. 3.3.1 mutate()
  46. 3.3.2 select()
  47. 3.3.3 rename()
  48. 3.3.4 relocate()
  49. 3.3.5 练习题
  50. 3.4 管道
  51. 3.5 分组
  52. 3.5.1 group_by()
  53. 3.5.2 summarize()
  54. 3.5.3 slice_*函数
  55. 3.5.4 根据多个变量分组
  56. 3.5.5 解除分组
  57. 3.5.6 .by 参数
  58. 3.5.7 练习题
  59. 3.6 案例研究:聚合与样本量
  60. 3.7 小结
  61. 第4章 工作流:代码风格
  62. 4.1 命名
  63. 4.2 空格
  64. 4.3 管道
  65. 4.4 ggplot2
  66. 4.5 分节注释
  67. 4.6 练习题
  68. 4.7 小结
  69. 第5章 数据整理
  70. 5.1 引言
  71. 5.2 整洁数据
  72. 5.3 转换为长数据
  73. 5.3.1 列名中包含变量值
  74. 5.3.2 转换为长数据是如何实现的
  75. 5.3.3 列名中包含多个变量值
  76. 5.3.4 列名中包含变量值和变量名
  77. 5.4 转换为宽数据
  78. 5.5 小结
  79. 第6章 工作流:脚本和项目
  80. 6.1 脚本
  81. 6.1.1 运行代码
  82. 6.1.2 RStudio诊断
  83. 6.1.3 保存与命名
  84. 6.2 项目
  85. 6.2.1 分析的真实源头是什么
  86. 6.2.2 如何存放分析项目
  87. 6.2.3 RStudio项目
  88. 6.2.4 相对路径与绝对路径
  89. 6.3 练习题
  90. 6.4 小结
  91. 第7章 数据导入
  92. 7.1 引言
  93. 7.2 从文件中读取数据
  94. 7.2.1 实用建议
  95. 7.2.2 其他参数
  96. 7.2.3 其他文件类型
  97. 7.2.4 练习题
  98. 7.3 控制列类型
  99. 7.3.1 猜测类型
  100. 7.3.2 缺失值、列类型与问题
  101. 7.3.3 列类型
  102. 7.4 从多个文件中读取数据
  103. 7.5 写入文件
  104. 7.6 数据录入
  105. 7.7 小结
  106. 第8章 工作流:获取帮助
  107. 8.1 Google是良师益友
  108. 8.2 创建最小可复现示例
  109. 8.3 投资自己
  110. 8.4 小结
  111. 第二部分 可视化
  112. 第9章 图层
  113. 9.1 引言
  114. 9.2 美学映射
  115. 9.3 几何对象
  116. 9.4 分面
  117. 9.5 统计变换
  118. 9.6 位置调整
  119. 9.7 坐标系
  120. 9.8 分层图形语法
  121. 9.9 小结
  122. 第10章 探索性数据分析
  123. 10.1 引言
  124. 10.2 问题
  125. 10.3 变动
  126. 10.3.1 正常的取值
  127. 10.3.2 异常的取值
  128. 10.3.3 练习题
  129. 10.4 异常的取值
  130. 10.5 协变
  131. 10.5.1 分类变量和数值变量
  132. 10.5.2 两个分类变量
  133. 10.5.3 两个数值变量
  134. 10.6 模式和模型
  135. 10.7 小结
  136. 第11章 呈现
  137. 11.1 引言
  138. 11.2 标签
  139. 11.3 标注
  140. 11.4 标度
  141. 11.4.1 默认标度
  142. 11.4.2 坐标轴刻度和图例标签
  143. 11.4.3 图例布局
  144. 11.4.4 替换标度
  145. 11.4.5 缩放
  146. 11.4.6 练习题
  147. 11.5 主题
  148. 11.6 布局
  149. 11.7 小结
  150. 第三部分 变换
  151. 第12章 逻辑向量
  152. 12.1 引言
  153. 12.2 比较
  154. 12.2.1 浮点数比较
  155. 12.2.2 缺失值
  156. 12.2.3 is.na()
  157. 12.2.4 练习题
  158. 12.3 布尔运算
  159. 12.3.1 缺失值
  160. 12.3.2 运算符优先级
  161. 12.3.3 %in%
  162. 12.3.4 练习题
  163. 12.4 汇总函数
  164. 12.4.1 逻辑汇总
  165. 12.4.2 逻辑向量的数值汇总
  166. 12.4.3 逻辑子集
  167. 12.4.4 练习题
  168. 12.5 条件变换
  169. 12.5.1 if_else()
  170. 12.5.2 case_when()
  171. 12.5.3 兼容类型
  172. 12.5.4 练习题
  173. 12.6 小结
  174. 第13章 数值
  175. 13.1 引言
  176. 13.2 生成数值
  177. 13.3 计数
  178. 13.4 数值变换
  179. 13.4.1 算术和循环补齐规则
  180. 13.4.2 最小值和最大值
  181. 13.4.3 模运算
  182. 13.4.4 对数函数
  183. 13.4.5 四舍五入
  184. 13.4.6 将数值切割成范围数据
  185. 13.4.7 累积与滚动聚合
  186. 13.4.8 练习题
  187. 13.5 一般变换
  188. 13.5.1 排名
  189. 13.5.2 偏移
  190. 13.5.3 连续分组标识
  191. 13.5.4 练习题
  192. 13.6 数值汇总函数
  193. 13.6.1 中心
  194. 13.6.2 最小值、最大值和分位数
  195. 13.6.3 分散度
  196. 13.6.4 分布
  197. 13.6.5 位置
  198. 13.6.6 使用mutate()
  199. 13.6.7 练习题
  200. 13.7 小结
  201. 第14章 字符串
  202. 14.1 引言
  203. 14.2 创建字符串
  204. 14.2.1 转义
  205. 14.2.2 原始字符串
  206. 14.2.3 其他特殊字符
  207. 14.2.4 练习题
  208. 14.3 创建多个字符串
  209. 14.3.1 str_c()
  210. 14.3.2 str_glue()
  211. 14.3.3 str_flatten()
  212. 14.3.4 练习题
  213. 14.4 从字符串中提取数据
  214. 14.4.1 拆分为多行
  215. 14.4.2 拆分为多列
  216.  字母
  217. 14.5.1 长度
  218. 14.5.2 子集
  219. 14.5.3 练习题
  220. 14.6 非英语文本
  221. 14.6.1 编码
  222. 14.6.2 字母变体
  223. 14.6.3 依赖区域设置的函数
  224. 14.7 小结
  225. 第15章 正则表达式
  226. 15.1 引言
  227. 15.2 模式基础
  228. 15.3 关键函数
  229. 15.3.1 检测匹配
  230. 15.3.2 计算匹配次数
  231. 15.3.3 修改匹配项
  232. 15.3.4 提取变量
  233. 15.3.5 练习题
  234. 15.4 模式细节
  235. 15.4.1 转义
  236. 15.4.2 锚点
  237. 15.4.3 字符类
  238. 15.4.4 量词
  239. 15.4.5 运算符优先级和括号
  240. 15.4.6 分组和捕获
  241. 15.4.7 练习题
  242. 15.5 模式控制
  243. 15.5.1 正则表达式标志
  244. 15.5.2 固定匹配
  245. 15.6 实践
  246. 15.6.1 检查当前工作
  247. 15.6.2 布尔运算
  248. 15.6.3 使用代码创建模式
  249. 15.6.4 练习题
  250. 15.7 正则表达式的其他使用场景
  251. 15.7.1 tidyverse
  252. 15.7.2 基础R
  253. 15.8 小结
  254. 第16章 因子
  255. 16.1 引言
  256. 16.2 因子基础
  257. 16.3 综合社会调查
  258. 16.4 修改因子顺序
  259. 16.5 修改因子水平
  260. 16.6 有序因子
  261. 16.7 小结
  262. 第17章 日期和时间
  263. 17.1 引言
  264. 17.2 创建日期/ 时间
  265. 17.2.1 导入过程.
  266. 17.2.2 从字符串中提取
  267. 17.2.3 从多列组件创建
  268. 17.2.4 从其他类型转换
  269. 17.2.5 练习题
  270. 17.3 日期时间组件
  271. 17.3.1 获取组件
  272. 17.3.2 取整
  273. 17.3.3 修改组件
  274. 17.3.4 练习题
  275. 17.4 时间跨度
  276. 17.4.1 持续时间
  277. 17.4.2 时段
  278. 17.4.3 区间
  279. 17.4.4 练习题
  280. 17.5 时区
  281. 17.6 小结
  282. 第18章 缺失值
  283. 18.1 引言
  284. 18.2 显式缺失值
  285. 18.2.1 末次观测值前推
  286. 18.2.2 固定值
  287. 18.2.3 NaN
  288. 18.3 隐式缺失值
  289. 18.3.1 长宽数据转换
  290. 18.3.2 补全
  291. 18.3.3 连接
  292. 18.3.4 练习题
  293. 18.4 因子和空组
  294. 18.5 小结
  295. 第19章 连接
  296. 19.1 引言
  297. 19.2 键
  298. 19.2.1 主键和外键
  299. 19.2.2 检查主键
  300. 19.2.3 代理键
  301. 19.2.4 练习题
  302. 19.3 基本连接
  303. 19.3.1 修改连接
  304. 19.3.2 指定连接键
  305. 19.3.3 过滤连接
  306. 19.3.4 练习题
  307. 19.4 连接是如何工作的
  308. 19.4.1 行匹配
  309. 19.4.2 过滤连接
  310. 19.5 非等值连接
  311. 19.5.1 交叉连接
  312. 19.5.2 不等连接
  313. 19.5.3 滚动连接
  314. 19.5.4 重叠连接
  315. 19.5.5 练习题
  316. 19.6 小结
  317. 第四部分 导入
  318. 第20章 电子表格
  319. 20.1 引言
  320. 20.2 Excel
  321. 20.2.1 准备工作
  322. 20.2.2 入门
  323. 20.2.3 读取Excel
  324. 20.2.4 读取工作表
  325. 20.2.5 读取工作表的一部分
  326. 20.2.6 数据类型
  327. 20.2.7 写入Excel
  328. 20.2.8 格式化输出
  329. 20.2.9 练习题
  330. 20.3 Google 表格
  331. 20.3.1 准备工作
  332. 20.3.2 入门
  333. 20.3.3 读取Google 表格
  334. 20.3.4 写入Google 表格
  335. 20.3.5 身份验证
  336. 20.3.6 练习题
  337. 20.4 小结
  338. 第21章 数据库
  339. 21.1 引言
  340. 21.2 数据库基础
  341. 21.3 连接到数据库
  342. 21.3.1 本书的选择
  343. 21.3.2 加载一些数据
  344. 21.3.3 DBI基础
  345. 21.4 dbplyr基础
  346. 21.5 SQL
  347. 21.5.1 SQL基础
  348. 21.5.2 SELECT
  349. 21.5.3 FROM
  350. 21.5.4 GROUP BY
  351. 21.5.5 WHERE
  352. 21.5.6 ORDER BY
  353. 21.5.7 子查询
  354. 21.5.8 连接
  355. 21.5.9 其他动词
  356. 21.5.10 练习题
  357. 21.6 函数翻译
  358. 21.7 小结
  359. 第22章 arrow
  360. 22.1 引言
  361. 22.2 获取数据
  362. 22.3 查看数据
  363. 22.4 Parquet格式
  364. 22.4.1 Parquet的优势
  365. 22.4.2 分区
  366. 22.4.3 重写西雅图公共图书馆数据
  367. 22.5 使用dplyr和arrow
  368. 22.5.1 性能
  369. 22.6 小结
  370. 第23章 层级数据
  371. 23.1 引言
  372. 23.2 列表
  373. 23.2.1 层级结构
  374. 23.2.2 列表列
  375. 23.3 展开
  376. 23.3.1 unnest_wider()
  377. 23.3.2 unnest_longer()
  378. 23.3.3 不一致的类型
  379. 23.3.4 其他函数
  380. 23.3.5 练习题
  381. 23.4 案例研究
  382. 23.4.1 非常宽的数据
  383. 23.4.2 关系数据
  384. 23.4.3 深层嵌套的数据
  385. 23.4.4 练习题
  386. 23.5 JSON
  387. 23.5.1 数据类型
  388. 23.5.2 jsonlite
  389. 23.5.3 开始矩形化过程
  390. 23.5.4 练习题
  391. 23.6 小结
  392. 第24章 网页爬取
  393. 24.1 引言
  394. 24.2 网页爬取的伦理和法律问题
  395. 24.2.1 服务条款
  396. 24.2.2 个人可识别信息
  397. 24.2.3 版权
  398. 24.3 HTML基础知识
  399. 24.3.1 元素
  400. 24.3.2 属性
  401. 24.4 提取数据
  402. 24.4.1 定位元素
  403. 24.4.2 嵌套选择
  404. 24.4.3 文本和属性
  405. 24.4.4 表格
  406. 24.5 写出正确的选择器
  407. 24.6 整合运用
  408. 24.6.1 星球大战
  409. 24.6.2 IMDb最佳电影
  410. 24.7 动态网页
  411. 24.8 小结
  412. 第五部分 编程
  413. 第25章 函数
  414. 25.1 引言
  415. 25.2 向量函数
  416. 25.2.1 编写函数
  417. 25.2.2 改进函数
  418. 25.2.3 修改函数
  419. 25.2.4 汇总函数
  420. 25.2.5 练习题
  421. 25.3 数据框函数
  422. 25.3.1 间接引用与整洁求值
  423. 25.3.2 何时使用间接引用
  424. 25.3.3 常用范例
  425. 25.3.4 数据屏蔽与整洁选择
  426. 25.3.5 练习题
  427. 25.4 图形函数
  428. 25.4.1 更多变量
  429. 25.4.2 结合其他tidyverse函数
  430. 25.4.3 添加标签
  431. 25.4.4 练习题
  432. 25.5 编程风格
  433. 25.6 小结
  434. 第26章 迭代
  435. 26.1 引言
  436. 26.2 修改多列
  437. 26.2.1 使用.cols选择列
  438. 26.2.2 调用单个函数
  439. 26.2.3 调用多个函数
  440. 26.2.4 列名
  441. 26.2.5 筛选行
  442. 26.2.6 在函数中使用across()
  443. 26.2.7 across()与pivot_longer()
  444. 26.2.8 练习题
  445. 26.3 批量读取文件
  446. 26.3.1 列出目录中的文件
  447. 26.3.2 结果列表
  448. 26.3.3 purrr::map()与list_rbind()
  449. 26.3.4 路径中的数据
  450. 26.3.5 保存结果
  451. 26.3.6 多次简单迭代
  452. 26.3.7 异质数据
  453. 26.3.8 处理失败情况
  454. 26.4 批量保存结果
  455. 26.4.1 写入数据库
  456. 26.4.2 写入多个CSV文件
  457. 26.4.3 保存图形
  458. 26.5 小结
  459. 第27章 基础R应用指南
  460. 27.1 引言
  461. 27.2 用[取子集
  462. 27.2.1 对向量取子集
  463. 27.2.2 对数据框取子集
  464. 27.2.3 dplyr中的等同操作
  465. 27.2.4 练习题
  466. 27.3 用$和[[取内容
  467. 27.3.1 对于data.frame
  468. 27.3.2 对于tibble
  469. 27.3.3 对于列表
  470. 27.3.4 练习题
  471. 27.4 apply函数族
  472. 27.5 for循环
  473. 27.6 基础绘图
  474. 27.7 小结
  475. 第六部分 交流
  476. 第28章 Quarto
  477. 28.1 引言
  478. 28.2 Quarto基础
  479. 28.3 可视化编辑模式
  480. 28.4 源码编辑模式
  481. 28.5 代码块
  482. 28.5.1 代码块标签
  483. 28.5.2 代码块选项
  484. 28.5.3 全局选项
  485. 28.5.4 行内代码
  486. 28.5.5 练习题
  487. 28.6 图像
  488. 28.6.1 图像大小调整
  489. 28.6.2 其他重要选项
  490. 28.6.3 练习题
  491. 28.7 表格
  492. 28.8 缓存
  493. 28.9 错误调试
  494. 28.10 YAML头
  495. 28.10.1 自包含文档
  496. 28.10.2 参数
  497. 28.10.3 引用和参考文献
  498. 28.11 工作流
  499. 28.12 小结
  500. 第29章 Quarto格式
  501. 29.1 引言
  502. 29.2 输出选项
  503. 29.3 文档
  504. 29.4 演示文稿
  505. 29.5 交互性
  506. 29.5.1 htmlwidgets
  507. 29.5.2 Shiny
  508. 29.6 网站和图书
  509. 29.7 其他格式
  510. 29.8 小结
书名:R数据科学(第2版)
译者:张敬信, 王小宁, 黄俊文 译
国内出版社:人民邮电出版社
出版时间:2026年02月
页数:471
书号:978-7-115-68264-2
原版书书名:R for Data Science, 2nd Edition
原版书出版商:O'Reilly Media
Hadley Wickham
 
Hadley Wickham,RStudio首席科学家,莱斯大学助理教授,资深R社区成员,已开发了30多个R包。因在数据处理和可视化开发工具方面的卓越贡献,获得专为统计计算而设立的约翰·钱伯斯奖。

Hadley Wickham是RStudio(现已更名为Posit)的首席科学家,2019年COPSS(统计学协会主席委员会)奖得主,R基金会成员。他构建了计算和认知工具,以使数据科学更容易、更快、更有趣。他的工作包括数据科学包(如tidyverse,其中包括ggplot2、dplyr和tidyr)和基础软件开发包(roxygen2、testthat和pkgdown)。他也是一位作家、教育家和演说家,提倡将R语言用于数据科学。您可以从他的网站hadley.nz上了解更多信息。
 
 
Mine Çetinkaya-Rundel
 
Mine Cetinkaya-Rundel是杜克大学统计科学系的实践教授和本科教务主任。她还是Posit公司的开发者教育工作者。
 
 
Garrett Grolemund
 
Garrett Grolemund是Hands-On Programming with R一书的作者,也是Posit公司的学习主管。
 
 
本书封面上的动物是鸮鹦鹉(Strigops habroptilus),原产于新西兰的大型鸟类。成年鸮鹦鹉身长可达64厘米,体重可达4千克。它们的羽毛通常呈黄绿色,但个体之间存在显著差异。鸮鹦鹉是夜行性动物,依靠敏锐的嗅觉在夜间觅食。虽然不善飞行,但鸮鹦鹉拥有强壮的双腿,使它们比大多数鸟类更善于奔跑和攀爬。
鸮鹦鹉(kakapo)这个名字来源于新西兰原住民毛利人的语言。鸮鹦鹉是毛利文化的重要组成部分,它们既是食物来源,也出现在毛利神话中。鸮鹦鹉的皮毛还曾用于制作斗篷和披风。
由于欧洲殖民期间掠食者被引入新西兰,鸮鹦鹉现在已经极度濒危,目前存活的个体不足200只。新西兰政府一直在积极尝试恢复鸮鹦鹉种群,在三个无掠食者的岛屿上为其提供特殊保护区。
购买选项
定价:159.80元
书号:978-7-115-68264-2
出版社:人民邮电出版社