来自 赵鹏 | January 26, 2019
又要从前一段时间讲的那门R 语言,开放科学与可重复性研究说起了。学生们在课上情绪高涨,认为学 R 的难度跟兴趣一样大,关键是对数据、代码、产品之间的协作关系不好把握。
图 1. 工作中的科研要素 (改自学 R)
于是我答应给他们写个包,主要是模板性质,一是把图上这些要素关系理顺,二是让新手快速上手 R markdown。rmd 包是前传,rosr 包是正传。
rosr 的 rosr_new() 函数会生成一个包含了图 1 各种要素的项目示例,并且自动编译出成品的文稿、幻灯片、海报等产品,让新手一下就尝到 R markdown 全家桶搭配可重复性研究的美味。只需更新数据和代码,所有产品里的内容就全部自动更新。
图 2. 一个 rosr 项目的内部关联。
其实主要就是相对路径和 knitr::opts_knit$set(root.dir)
的使用,没啥新鲜的。要说新鲜的,那就是公式的插入。
图 3. rosr 项目里的示例公式表
科研项目里经常在各处插入同一公式,这个跟参考文献类似。所以,我仿照了 bibtex 的方式,把所有公式写在同一个 .Rmd 文件里,并自动编译成一个 html 文件。每个公式有个唯一的标签,相当于 bib 里的 entry。在文档里插入时,只需用 rosr::eq()
函数指定公式标签就行了。
未来希望将 citr 插件+bookdown的公式插件结合起来,在小窗口里输入公式关键词,就跳出编译好的公式,鼠标选择就可插入。然而插件这块我不熟,要是有人愿意加入合作就太好了。我觉得把上述两个插件的源代码揉在一起就差不多了。
remotes::install_github('pzhaonet/rosr')
rosr::create_rosr('tesst')
其实,在应用层面上,即使不懂 R 语言,来尝尝 R markdown 全家桶的味道也不错。于是,我做了个 shiny 界面来创建项目,并做成了 RStudio 的插件,非 R 用户也可以用了。点击 RStudio 的 'Addins' 按钮,找到 "Create a rosr project",点击。
会跳出一个窗口,用户只需点点点点,然后 Create 就可以看产品了。
rosr 的广告词:忘掉 R,拥抱 R Markdown。