limiting dependencies in R package development 里面介绍的小技巧长姿势了。
诚邀广大R语言、数据可视化爱好者和我们一起搬迁升级谢益辉著作《现代统计图形》
求助各位,不知为什么书籍自动测试又崩溃了,,报错消息见 <https://travis-ci.com/XiangyunHuang/MSG-Book>。
在本地运行没报错,所以编译后,我推送到了 <https://bookdown.org/xiangyun/msg/>
- 已编辑
举个栗子
library(tidyverse)
death_tidy <- death %>%
as.data.frame() %>%
rownames_to_column(var = "population_group") %>%
pivot_longer(cols = -population_group, names_to = "age", values_to = "count") %>%
mutate(
age = fct_inorder(factor(age)),
population_group = factor(
population_group,
levels = c("Rural Male", "Rural Female", "Urban Male", "Urban Female")
)
)
会被替换为
reshape_VADeaths <- transform(
expand.grid(
sex = colnames(VADeaths),
age = rownames(VADeaths)
),
rates = as.vector(t(VADeaths))
)
本人水平有限,一方面看不懂净土代码,另一方面也很是怀疑其稳定性,为了后续维护计,我放弃了书籍中所有净土代码,一律会被替换掉,类似上面的例子。
把 tidyverse 相关的代码替换掉以后,又可以运行了
你链那篇谭显英的博客提到的mutate_at 的问题我也碰到过,一年前写的dplyr相关代码一编译出错, 结果发现语法变了。
感觉向后兼容性真是开发过程里很重要的问题。前几天看了python2/3 为什么分家的博客,大概就是引入了不向后兼容的变化(比如print加括号),现在说是2020年py2不再维护寿终正寝,但library下载统计显示40%的下载量依然基于2.7。python2/3生生把社区割裂开我觉得算是软件史上因为引入不兼容改变走过的最长弯路了
但是一昧向后兼容也会导致积重难返,很多东西明知有更好的做法但为了不破坏下游的依赖也只能将”错”就”错”,比如r里stringasfactor=TRUE, R选项默认保存当前工作环境的image等等…
总之我很同意谭那篇博客里提的“不要在生产环境里用净土宗”,好多基础性的语法都在变来变去的话,在我看来是跟鼓吹多年的reproducible research背道而驰的。
tctcab 这一点 R 明显有优势,变动不是很大,对大部分用户来说没啥大影响 <https://cloud.r-project.org/doc/manuals/r-devel/NEWS.html>
- 已编辑
Cloud2016 我恐怕 git 的功力不够,做不到维护一个或多个分支。鉴于眼下只有你老哥一个在折腾,我建议走一步看一步,搁置争议,共同开发吧。
tctcab 关于兼容翻车的问题,perl 6 改名叫 Raku 也是个榜样。
gWidgetsRGtk2 当前已经从 CRAN 上移除了,还好书中相关代码并没有运行,看来 RGtk2 替换成 shiny 是大势所趋
当前没有太多精力在这上面,仅维护网站可用 https://msg-book.netlify.app/
最近好几个场合我都推荐了这本书。要不找一家出版社把这书正式出版了如何?大家要是愿意的话,剩下的事情我来做。要是不愿意,但说无妨。@yihui @Cloud2016
dapengde 如此甚好,那请 @Cloud2016 把出版社的邮件转发给大鹏吧,那位编辑已经追了我们大半年了,我都没顾上回复她。
论坛萌新,在看电子版,期待这本书出版啊!
期待出版,最近也在追这本书,有种豁然开朗的感觉,没想到baseR的绘图也可以如此让人沉迷