XiangyunHuang / msg

:book: 现代统计图形(人民邮电出版社出版) Modern Statistical Graphics

Home Page:https://bookdown.org/xiangyun/msg

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

【全书】代码升级

XiangyunHuang opened this issue · comments

搬迁工作完成,即宣告替换/修复完书中不能运行的代码,接下来是代码升级,指的是书中的代码可以运行,但是代码中包含的 R 包作者已经不维护或者停止维护,这类代码可以更新升级,考虑到本书风格偏向 Base R, 我们可以将数据操作尽量限定在这个范围,当然可以有 tidyverse 风格,但是我想把它放在第二版的现代统计图形中,这个有点类似于第一版的 Advanced R 和第二版的 Advanced R 的做法 --- 在讲同一个东西,但是基于不同的工具在讲

现在举例解释何为第一版现代统计图形的代码升级,比如这一段代码(位于第4章第29小节交互效应图)

# ddply 在 plyr 包中,cast 在 reshape 包中
library(plyr)
library(reshape)
tbl <- ddply(esoph, agegp ~ alcgp, summarise, mean(ncases / (ncases + ncontrols)))
cast(tbl, agegp ~ alcgp)

其中 plyr 和 reshape 包都处于维护模式,不再更新了,作者也不推荐使用了,这个升级工作一个走 dplyr 或者 data.table,另一个走 Base R,这样做的目的是希望代码能在相当一段时间内是稳定的,减少后期维护成本。就这本书而言,没有什么大数据, Base R 提供的数据操作足以应付,文风也能统一,我倾向于这个 Base R

事实上,引入的两个依赖可去掉,替换后代码如下

tbl <- aggregate(ncases / (ncases + ncontrols) ~ agegp * alcgp, data = esoph, mean)
colnames(tbl) <- c("agegp", "alcgp", "mean")
reshape(tbl, timevar = "alcgp", idvar = "agegp", direction = "wide", sep = "_")

#29 也属于此类,但是我想把它放在第二版中,主要是工作量会很大,全书代码改动比较多,基本上也是纯体力劳动

阶段性胜利!建议来个 release。

把问题 #28 搞完就可以先放出来一版

@pzhaonet 把图库一章的文本格式再统一一下吧,我把代码格式和过时的替换了一遍,比如上面提到的代码问题

图5.2 绘制失败,代码不需要更新,只是需要加装包 hexbin

@liechi 谢谢反馈,已修正

已经做完