寫R包的長篇使用文檔vignette

花花寫于2020-3-20 公司的第二期線上培訓(xùn),我的部分還剩明天最后一次課,講完又能休息一周。不過由于要增加數(shù)據(jù)挖掘線上新課,下周要做研發(fā)。劇透一下,線上的數(shù)據(jù)挖掘課要加上TCGA了,我表示鴨梨山大。

從使用者的角度,調(diào)用長篇使用文檔用browseVignettes函數(shù),比如:

browseVignettes("clusterProfiler")

從開發(fā)這的角度,創(chuàng)建這個(gè)文檔,書中寫的非常簡單:
使用devtools::use_vignette("my-vignette")命令,即可生成指南的模板,為rmd格式。
修改文檔后,和其他rmd文檔一樣,用knit預(yù)覽即可。
但在使用過程中出現(xiàn)了問題:

devtools::use_vignette("my-vignette")
Error: 'use_vignette' is not an exported object from 'namespace:devtools'

這就很尷尬了,書上的原文出了問題,這可咋整。
根據(jù)報(bào)錯(cuò)信息,這個(gè)就約等于“找不到函數(shù)”,所以看了一下包里的函數(shù),這個(gè)use_vignette是真的沒有。

書和包都是hadlay寫的,絕不會(huì)有錯(cuò),這就說明devtools更新了,這個(gè)函數(shù)過時(shí)了。

尋找替代函數(shù)

我想到,可能是這個(gè)函數(shù)被替代了吧,所以搜一下有沒有其他的含有vignette的函數(shù):

x = ls("package:devtools")
> library(devtools)
> library(stringr)
> str_subset(x,"vignette")
[1] "build_vignettes" "clean_vignettes"

只有 "build_vignettes" "clean_vignettes"這兩個(gè),研究了一下 "build_vignettes" ,好像并不是use_vignettes的替代。

所以現(xiàn)在問題就是,找到含有這個(gè)函數(shù)的devtools版本,并且安裝這個(gè)歷史版本的包。

尋找歷史版本

搜索devtools::use_vignette() deprecated,找到了這個(gè)鏈接:https://cran.r-project.org/web/packages/devtools/news/news.html


后來發(fā)現(xiàn),這個(gè)函數(shù)在1.6版本中出現(xiàn)(2014年),2.1.0版本中被刪掉了,19年7月更新的,而R包開發(fā)這本書寫的時(shí)間比這早。

安裝歷史版本

搜索install.packages old version,找到了這個(gè)鏈接:
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的上一個(gè)版本,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")

然后就可以用了,費(fèi)了一番功夫,不過也學(xué)到了一點(diǎn)新知識(shí),即安裝歷史版本的R包。
書中后續(xù)都是在介紹rmarkdown的語法,那些我都會(huì)了,就不寫了。

花花寫于2020-3-20 公司的第二期線上培訓(xùn),我的部分還剩明天最后一次課,講完又能休息一周。不過由于要增加數(shù)據(jù)挖掘線上新課,下周要做研發(fā)。劇透一下,線上的數(shù)據(jù)挖掘課要加上TCGA了,我表示鴨梨山大。

從使用者的角度,調(diào)用長篇使用文檔用browseVignettes函數(shù),比如:

browseVignettes("clusterProfiler")

從開發(fā)這的角度,創(chuàng)建這個(gè)文檔,書中寫的非常簡單:
使用devtools::use_vignette("my-vignette")命令,即可生成指南的模板,為rmd格式。
修改文檔后,和其他rmd文檔一樣,用knit預(yù)覽即可。
但在使用過程中出現(xiàn)了問題:

devtools::use_vignette("my-vignette")
Error: 'use_vignette' is not an exported object from 'namespace:devtools'

這就很尷尬了,書上的原文出了問題,這可咋整。
根據(jù)報(bào)錯(cuò)信息,這個(gè)就約等于“找不到函數(shù)”,所以看了一下包里的函數(shù),這個(gè)use_vignette是真的沒有。

書和包都是hadlay寫的,絕不會(huì)有錯(cuò),這就說明devtools更新了,這個(gè)函數(shù)過時(shí)了。

尋找替代函數(shù)

我想到,可能是這個(gè)函數(shù)被替代了吧,所以搜一下有沒有其他的含有vignette的函數(shù):

x = ls("package:devtools")
> library(devtools)
> library(stringr)
> str_subset(x,"vignette")
[1] "build_vignettes" "clean_vignettes"

只有 "build_vignettes" "clean_vignettes"這兩個(gè),研究了一下 "build_vignettes" ,好像并不是use_vignettes的替代。

所以現(xiàn)在問題就是,找到含有這個(gè)函數(shù)的devtools版本,并且安裝這個(gè)歷史版本的包。

尋找歷史版本

搜索devtools::use_vignette() deprecated,找到了這個(gè)鏈接:https://cran.r-project.org/web/packages/devtools/news/news.html


后來發(fā)現(xiàn),這個(gè)函數(shù)在1.6版本中出現(xiàn)(2014年),2.1.0版本中被刪掉了,19年7月更新的,而R包開發(fā)這本書寫的時(shí)間比這早。

安裝歷史版本

搜索install.packages old version,找到了這個(gè)鏈接:
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的上一個(gè)版本,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")

然后就可以用了,費(fèi)了一番功夫,不過也學(xué)到了一點(diǎn)新知識(shí),即安裝歷史版本的R包。
書中后續(xù)都是在介紹rmarkdown的語法,那些我都會(huì)了,就不寫了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容