写R包的长篇使用文档vignette
今天是生信星球陪你的第571天
大神一句话,菜鸟跑半年。我不是大神,但我可以缩短你走弯路的半年~
就像歌儿唱的那样,如果你不知道该往哪儿走,就留在这学点生信好不好~
这里有豆豆和花花的学习历程,从新手到进阶,生信路上有你有我!

花花写于2020-3-20 公司的第二期线上培训,我的部分还剩明天最后一次课,讲完又能休息一周。不过由于要增加数据挖掘线上新课,下周要做研发。剧透一下,线上的数据挖掘课要加上TCGA了,我表示鸭梨山大。
从使用者的角度,调用长篇使用文档用browseVignettes函数,比如:
browseVignettes("clusterProfiler")
从开发这的角度,创建这个文档,书中写的非常简单:
使用devtools::use_vignette(“my-vignette”)命令,即可生成指南的模板,为rmd格式。
修改文档后,和其他rmd文档一样,用knit预览即可。
但在使用过程中出现了问题:
devtools::use_vignette("my-vignette")
Error: 'use_vignette' is not an exported object from 'namespace:devtools'
这就很尴尬了,书上的原文出了问题,这可咋整。
根据报错信息,这个就约等于“找不到函数”,所以看了一下包里的函数,这个use_vignette是真的没有。
书和包都是hadlay写的,绝不会有错,这就说明devtools更新了,这个函数过时了。
寻找替代函数
我想到,可能是这个函数被替代了吧,所以搜一下有没有其他的含有vignette的函数:
x = ls("package:devtools")
> library(devtools)
> library(stringr)
> str_subset(x,"vignette")
[1] "build_vignettes" "clean_vignettes"
只有 “build_vignettes” “clean_vignettes”这两个,研究了一下 “build_vignettes” ,好像并不是use_vignettes的替代。
所以现在问题就是,找到含有这个函数的devtools版本,并且安装这个历史版本的包。
寻找历史版本
搜索devtools::use_vignette() deprecated,找到了这个链接:https://cran.r-project.org/web/packages/devtools/news/news.html

后来发现,这个函数在1.6版本中出现(2014年),2.1.0版本中被删掉了,19年7月更新的,而R包开发这本书写的时间比这早。
安装历史版本
搜索install.packages old version,找到了这个链接:
https://support.rstudio.com/hc/en-us/articles/219949047-Installing-older-versions-of-packages
其中给出了历史版本存放的位置,从中可以找到devtools:
https://cran.r-project.org/src/contrib/Archive/devtools/
从上面的链接里找到安装代码,替换一下链接就可以安装2.1.0的上一个版本,2.0.2就可以。
packageurl <- "https://cran.r-project.org/src/contrib/Archive/devtools/devtools_2.0.2.tar.gz"
install.packages(packageurl, repos=NULL, type="source")
然后就可以用了,费了一番功夫,不过也学到了一点新知识,即安装历史版本的R包。
书中后续都是在介绍rmarkdown的语法,那些我都会了,就不写了。
花花写于2020-3-20 公司的第二期线上培训,我的部分还剩明天最后一次课,讲完又能休息一周。不过由于要增加数据挖掘线上新课,下周要做研发。剧透一下,线上的数据挖掘课要加上TCGA了,我表示鸭梨山大。
从使用者的角度,调用长篇使用文档用browseVignettes函数,比如:
browseVignettes("clusterProfiler")
从开发这的角度,创建这个文档,书中写的非常简单:
使用devtools::use_vignette(“my-vignette”)命令,即可生成指南的模板,为rmd格式。
修改文档后,和其他rmd文档一样,用knit预览即可。
但在使用过程中出现了问题:
devtools::use_vignette("my-vignette")
Error: 'use_vignette' is not an exported object from 'namespace:devtools'
这就很尴尬了,书上的原文出了问题,这可咋整。
根据报错信息,这个就约等于“找不到函数”,所以看了一下包里的函数,这个use_vignette是真的没有。
书和包都是hadlay写的,绝不会有错,这就说明devtools更新了,这个函数过时了。
寻找替代函数
我想到,可能是这个函数被替代了吧,所以搜一下有没有其他的含有vignette的函数:
x = ls("package:devtools")
> library(devtools)
> library(stringr)
> str_subset(x,"vignette")
[1] "build_vignettes" "clean_vignettes"
只有 “build_vignettes” “clean_vignettes”这两个,研究了一下 “build_vignettes” ,好像并不是use_vignettes的替代。
所以现在问题就是,找到含有这个函数的devtools版本,并且安装这个历史版本的包。
寻找历史版本
搜索devtools::use_vignette() deprecated,找到了这个链接:https://cran.r-project.org/web/packages/devtools/news/news.html

后来发现,这个函数在1.6版本中出现(2014年),2.1.0版本中被删掉了,19年7月更新的,而R包开发这本书写的时间比这早。
安装历史版本
搜索install.packages old version,找到了这个链接:
https://support.rstudio.com/hc/en-us/articles/219949047-Installing-older-versions-of-packages
其中给出了历史版本存放的位置,从中可以找到devtools:
https://cran.r-project.org/src/contrib/Archive/devtools/
从上面的链接里找到安装代码,替换一下链接就可以安装2.1.0的上一个版本,2.0.2就可以。
packageurl <- "https://cran.r-project.org/src/contrib/Archive/devtools/devtools_2.0.2.tar.gz"
install.packages(packageurl, repos=NULL, type="source")
然后就可以用了,费了一番功夫,不过也学到了一点新知识,即安装历史版本的R包。
书中后续都是在介绍rmarkdown的语法,那些我都会了,就不写了。
插个小广告!
全国巡讲全球听(生信线上直播课)
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!