精通Shiny
Hadley Wickham
叶健峰 译
出版时间:2023年07月
页数:373
“《精通Shiny》是Shiny的权威指南。它很容易作为入门指南使用,也提供了比以往任何相关书籍都更深入的主题探索,如反应机制和模块。作为Hadley 的经典作品,这本书不仅可以帮助您学习如何使用Shiny,还可以帮助您建立牢固的理论模型,告诉您为什么事情是这样运作的。”
——Joe Cheng
RStudio的CTO及Shiny的创造者

掌握Shiny Web框架,把您的R语言技能提升到一个全新的水平。超越静态报表,Shiny可以帮助您创建用于数据分析的完全交互式Web应用。用户将能够在数据集之间跳转,探索数据的不同子集或方面,使用自己选择的参数值运行模型,自定义可视化等等。
来自RStudio(现已更名为Posit,https://posit .co)的Hadley Wickham向不了解HTML、CSS或JavaScript的数据科学家、数据分析师、统计学家和科研人员展示了如何用R语言创建丰富的Web应用。这本深度指南提供了一个您可以自信跟随的学习路径,让您从一个Shiny的初学者成为能够编写可维护且性能卓越的大型复杂应用程序的专家级开发人员。
● 开始:了解Shiny应用的主要部分是如何组合到一起的。
● Shiny实战:探索Shiny的功能,重点关注代码示例、示例应用
和有用技术。
● 精通反应机制:深入研究反应式编程的理论和实践,并检视反
应图组件。
● 应用最佳实践:检视使Shiny应用在生产中运行良好的有用技
术。
  1. 前言
  2. 第1部分 入门
  3. 第1章 您的第一个Shiny应用
  4. 1.1 创建应用程序目录和文件
  5. 1.2 运行和停止
  6. 1.3 添加UI控件
  7. 1.4 添加行为
  8. 1.5 使用反应表达式减少重复
  9. 1.6 小结
  10. 1.7 练习
  11. 第2章 基本用户界面
  12. 2.1 输入
  13. 2.1.1 共同结构
  14. 2.1.2 自由文本
  15. 2.1.3 数字输入
  16. 2.1.4 日期
  17. 2.1.5 有限的选择
  18. 2.1.6 文件上传
  19. 2.1.7 动作按钮
  20. 2.1.8 练习
  21. 2.2 输出
  22. 2.2.1 文本
  23. 2.2.2 表格
  24. 2.2.3 绘图
  25. 2.2.4 下载
  26. 2.2.5 练习
  27. 2.3 小结
  28. 第3章 反应机制基础
  29. 3.1 服务器函数
  30. 3.1.1 输入
  31. 3.1.2 输出
  32. 3.2 反应式编程
  33. 3.2.1 命令式编程与声明式编程
  34. 3.2.2 懒惰
  35. 3.2.3 反应图
  36. 3.2.4 反应表达式
  37. 3.2.5 执行顺序
  38. 3.2.6 练习
  39. 3.3 反应表达式
  40. 3.3.1 动机
  41. 3.3.2 应用程序
  42. 3.4.3 反应图
  43. 3.3.4 简化反应图
  44. 3.3.5 为什么我们需要反应表达式?
  45. 3.4 控制执行的时间
  46. 3.4.1 定时失效
  47. 3.4.2 点击
  48. 3.5 观察器
  49. 3.6 小结
  50. 第4章 案例学习:ER损伤
  51. 4.1 数据
  52. 4.2 探索
  53. 4.3 原型
  54. 4.4 对齐表格
  55. 4.6 受伤率与计数
  56. 4.6 描述
  57. 4.7 练习
  58. 4.8 小结
  59. 第2部分 Shiny实战
  60. 第5章 工作流程
  61. 5.1 开发工作流程
  62. 5.1.1 创建应用程序
  63. 5.1.2 看到您的变化
  64. 5.1.3 控制视图
  65. 5.2 调试
  66. 5.2.1 读取回溯堆栈
  67. 5.2.2 Shiny的回溯堆栈
  68. 5.2.3 交互式调试器
  69. 5.2.4 案例学习
  70. 5.2.5 调试反应式程序
  71. 5.3 获得帮助
  72. 5.3.1 复现用例基础
  73. 5.3.2 制作复现用例
  74. 5.3.3 创建最小复现用例
  75. 5.3.4 案例学习
  76. 5.4 小结
  77. 第6章 布局、主题、HTML
  78. 6.1 单页布局
  79. 6.1.1 页面布局函数
  80. 6.1.2 带有侧栏的页面
  81. 6.1.3 多行
  82. 6.1.4 练习
  83. 6.2 多页布局
  84. 6.2.1 标签集
  85. 6.2.2 导航列表和导航栏
  86. 6.3 Bootstrap
  87. 6.4 主题
  88. 6.4.1 入门
  89. 6.4.2 Shiny主题
  90. 6.4.3 绘图主题
  91. 6.4.4 练习
  92. 6.5 引擎盖下
  93. 6.6 小结
  94. 第7章 图形
  95. 7.1 互动性
  96. 7.1.1 基础知识
  97. 7.1.2 单击
  98. 7.1.3 其他点击事件
  99. 7.1.4 画笔
  100. 7.1.5 修改绘图
  101. 7.1.6 交互性限制
  102. 7.2 动态高度和宽度
  103. 7.3 图像
  104. 7.4 小结
  105. 第8章 用户反馈
  106. 8.1 验证
  107. 8.1.1 验证输入
  108. 8.1.2 使用req()取消执行
  109. 8.1.3 req()和验证
  110. 8.1.4 验证输出
  111. 8.2 通知
  112. 8.2.1 即时通知
  113. 8.2.2 完成后删除
  114. 8.2.3 渐进式更新
  115. 8.3 进度条
  116. 8.3.1 Shiny
  117. 8.3.2 Waiter
  118. 8.3.3 旋转指针
  119. 8.4 确认和撤销
  120. 8.4.1 明确确认
  121. 8.4.2 撤销操作
  122. 8.4.3 垃圾
  123. 8.5 小结
  124. 第9章 上传和下载
  125. 9.1 上传
  126. 9.1.1 用户界面
  127. 9.1.2 服务器函数
  128. 9.1.3 上传数据
  129. 9.2 下载
  130. 9.2.1 基础知识
  131. 9.2.2 下载数据
  132. 9.2.3 下载报告
  133. 9.3 案例学习
  134. 9.4 练习
  135. 9.5 小结
  136. 第10章 动态用户界面
  137. 10.1 更新输入
  138. 10.1.1 简单用例
  139. 10.1.2 分层选择框
  140. 10.1.3 冻结反应式输入
  141. 10.1.4 循环引用
  142. 10.1.5 相互关联的输入
  143. 10.1.6 练习
  144. 10.2 动态可见性
  145. 10.2.1 条件用户界面
  146. 10.2.2 向导界面
  147. 10.2.3 练习
  148. 10.3 使用代码创建UI
  149. 10.3.1 入门
  150. 10.3.2 多重控制
  151. 10.3.3 动态过滤
  152. 10.3.4 对话框
  153. 10.3.5 练习
  154. 10.4 小结
  155. 第11章 书签
  156. 11.1 基本想法
  157. 11.1.1 更新URL
  158. 11.1.2 存储更丰富的状态
  159. 11.2 书签挑战
  160. 11.3 练习
  161. 11.4 小结
  162. 第12章 Tidy计算
  163. 12.1 动机
  164. 12.2 数据掩蔽
  165. 12.2.1 入门
  166. 12.2.2 示例:ggplot2
  167. 12.2.3 示例:dplyr
  168. 12.2.4 用户提供的数据
  169. 12.2.5 为什么不使用基础R?
  170. 12.3 Tidy选择
  171. 12.3.1 间接引用
  172. 12.3.2 Tidy选择和数据掩蔽
  173. 12.4 parse()+eval()
  174. 12.5 小结
  175. 第3部分 深入反应机制
  176. 第13章 为什么是反应机制?
  177. 13.1 为什么我们需要反应式编程?
  178. 13.1.1 为什么不能使用变量?
  179. 13.1.2 函数又如何?
  180. 13.1.3 事件驱动编程
  181. 13.1.4 反应式编程
  182. 13.2 反应式编程的简要历史
  183. 13.3 小结
  184. 第14章 反应图
  185. 14.1 反应式执行的步骤
  186. 14.2 会话开始
  187. 14.2.1 开始执行
  188. 14.2.2 读取反应表达式
  189. 14.2.3 读取输入
  190. 14.2.4 反应表达式完成执行
  191. 14.2.5 输出完成
  192. 14.2.6 执行下一个输出
  193. 14.2.7 执行完成,输出刷新
  194. 14.3 输入变化
  195. 14.3.1 输入失效
  196. 14.3.2 通知依赖项
  197. 14.3.3 删除关系
  198. 14.3.4 重新执行
  199. 14.3.5 练习
  200. 14.4 活力
  201. 14.5 reactlog包
  202. 14.6 小结
  203. 第15章 反应组件
  204. 15.1 反应变量
  205. 15.2 反应表达式
  206. 15.2.1 错误
  207. 15.2.2 on.exit()
  208. 15.2.3 练习
  209. 15.3 观察器和输出
  210. 15.4 隔离代码
  211. 15.4.1 isolate()
  212. 15.4.2 observeEvent()和eventReactive()
  213. 15.4.3 练习
  214. 15.5 定时失效
  215. 15.5.1 拉入数据
  216. 15.5.2 耗时反应组件
  217. 15.5.3 定时器精度
  218. 15.5.4 练习
  219. 15.6 小结
  220. 第16章 摆脱反应图
  221. 16.1 反应图没有捕捉到什么?
  222. 16.2 案例学习
  223. 16.2.1 由多个输入修改的一个输出
  224. 16.2.2 累积输入
  225. 16.2.3 暂停动画
  226. 16.2.4 练习
  227. 16.3 反模式
  228. 16.4 小结
  229. 第4部分 最佳实践
  230. 第17章 一般准则
  231. 17.1 代码组织
  232. 17.2 测试
  233. 17.3 依赖关系管理
  234. 17.4 源代码管理
  235. 17.5 持续集成/部署(CI、CD)
  236. 17.6 代码评审
  237. 17.7 小结
  238. 第18章 函数
  239. 18.1 文件组织
  240. 18.2 UI函数
  241. 18.2.1 其他应用
  242. 18.2.2 函数式编程
  243. 18.2.3 用户界面作为数据
  244. 18.3 服务器函数
  245. 18.3.1 读取上传的数据
  246. 18.3.2 内部函数
  247. 18.4 小结
  248. 第19章 Shiny模块
  249. 19.1 动机
  250. 19.2 模块基础
  251. 19.2.1 模块UI
  252. 19.2.2 模块服务器函数
  253. 19.2.3 更新的应用程序
  254. 19.2.4 名称空间
  255. 19.2.5 命名约定
  256. 19.2.6 练习
  257. 19.3 输入和输出
  258. 19.3.1 入门:UI输入+服务器输出
  259. 19.3.2 案例学习:选择数字变量
  260. 19.3.3 服务器输入
  261. 19.3.4 模块内部的模块
  262. 19.3.5 案例学习:直方图
  263. 19.3.6 多输出
  264. 19.3.7 练习
  265. 19.4 案例学习
  266. 19.4.1 有限选择+其他
  267. 19.4.2 向导
  268. 19.4.3 动态UI
  269. 19.5 单对象模块
  270. 19.6 小结
  271. 第20章 R软件包
  272. 20.1 转换现有应用程序
  273. 20.1.1 单个文件
  274. 20.1.2 模块文件
  275. 20.1.3 一个软件包
  276. 20.2 好处
  277. 20.2.1 工作流程
  278. 20.2.2 共享
  279. 20.3 额外步骤
  280. 20.3.1 部署应用程序包
  281. 20.3.2 R CMD检查
  282. 20.3.3 生成单独的R软件包
  283. 20.4 小结
  284. 第21章 测试
  285. 21.1 测试函数
  286. 21.1.1 基本结构
  287. 21.1.2 基本工作流程
  288. 21.1.3 主要期望函数
  289. 21.1.4 用户界面函数
  290. 21.2 工作流程
  291. 21.2.1 代码覆盖率
  292. 21.2.2 键盘快捷键
  293. 21.2.3 工作流程小结
  294. 21.3 测试反应组件
  295. 21.3.1 模块
  296. 21.3.2 限制
  297. 21.4 测试JavaScript
  298. 21.4.1 基本操作
  299. 21.4.2 案例学习
  300. 21.5 测试视觉效果
  301. 21.6 哲学
  302. 21.7 小结
  303. 第22章 安全
  304. 22.1 数据
  305. 22.2 计算资源
  306. 第23章 性能
  307. 23.1 在Shiny餐厅用晚餐
  308. 23.2 基准测试
  309. 23.2.1 记录
  310. 23.2.2 重播
  311. 23.2.3 分析
  312. 23.3 分析
  313. 23.3.1 火焰图
  314. 23.3.2 分析R代码
  315. 23.3.3 分析Shiny应用程序
  316. 23.3.4 限制
  317. 23.4 改进性能
  318. 23.5 缓存
  319. 23.5.1 基础知识
  320. 23.5.2 缓存反应组件
  321. 23.5.3 缓存绘图
  322. 23.5.4 缓存键
  323. 23.5.5 缓存作用域
  324. 23.6 其他优化
  325. 23.6.1 数据种豆计划
  326. 23.6.2 管理用户期望
  327. 23.7 小结
书名:精通Shiny
作者:Hadley Wickham
译者:叶健峰 译
国内出版社:东南大学出版社
出版时间:2023年07月
页数:373
书号:978-7-5766-0656-0
原版书书名:Mastering Shiny
原版书出版商: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上了解更多信息。
 
 
Mastering Shiny封面上的动物是一只kererū(Hemiphaga novaeseelandiae),也被称为新西兰鸽,因为它是唯一一种原产于新西兰大陆的鸽子。
新西兰鸽的羽毛呈青铜色,头部和身体呈有光泽的紫绿色。这只鸽子的腹部是白色的,喙是红色的,与它的眼睛相配。它们发出柔和的咕咕声,在降落或起飞时发出独特的拍打翅膀的声音。典型的细长而活跃,在果实和交配季节它们体重会增加。
因为它们是为数不多的体型大到可以吞下整颗水果的本地鸟类之一,所以新西兰鸽在新西兰各地传播本地种子方面发挥着至关重要的作用。这只鸽子因是新西兰最醉的鸟而享有盛名——人们知道,这只鸽子在食用发酵水果后会从树上掉下来。
新西兰鸽对毛利人具有重要的文化意义。例如,在毛利人的传说中,据说当骗子毛利人在冥界寻找他的父母时,他化身为一只新西兰鸽。尽管毛利人传统上会使用它的肉、骨头和羽毛,但目前的保护条例对狩猎新西兰鸽施加了限制。
由于入侵物种、狩猎和栖息地恶化,新西兰鸽被IUCN列为濒危物种。O’Reilly封面上的许多动物都濒临灭绝,所有这些动物对世界都很重要。
凯伦·蒙哥马利(Karen Montgomery)画的彩色插图,基于英国鸟类的黑白雕刻。
购买选项
定价:108.00元
书号:978-7-5766-0656-0
出版社:东南大学出版社