給你看,我用的就是這些包??

劉小澤寫于2020.4.19
題目依然是花花幫忙起的
今天來(lái)介紹一個(gè)簡(jiǎn)單又實(shí)用的需求,就是如何自動(dòng)化給每個(gè)包添加對(duì)應(yīng)的說(shuō)明和版本信息

前言

我們首先來(lái)假設(shè)一個(gè)情境,而且一定會(huì)遇到:

我自己有一個(gè)腳本,想發(fā)給別人用,但別人收到后卻產(chǎn)生某個(gè)包的報(bào)錯(cuò)。于是第一步,他會(huì)問(wèn):你用的R包都是哪個(gè)版本啊?我怎么重復(fù)不出來(lái)?

這時(shí)一般我們會(huì)用sessionInfo(),得到下面的全部配置

但當(dāng)我們安裝的R包數(shù)量有點(diǎn)多時(shí),別人可能要仔細(xì)從中尋找對(duì)應(yīng)的包的版本

那么問(wèn)題來(lái)了:能不能一開(kāi)始加載包的時(shí)候,就直接標(biāo)注包的版本呢?

一個(gè)善于觀察的人寫了一個(gè)有趣的包

這個(gè)人叫:Luis Verde Arregoitia (https://github.com/luisDVA/annotater)

他在幫助同事進(jìn)行R debug時(shí)發(fā)現(xiàn),同事的腳步中調(diào)用了大量的R包,而且錯(cuò)誤主要是由于包的依賴關(guān)系沒(méi)有搞好(可能某個(gè)依賴包的版本太舊或者太新),另外有很多R包已經(jīng)忘記是做什么用的了,需要現(xiàn)場(chǎng)一個(gè)一個(gè)查。

最后,他利用utils::packageDescription()對(duì)每個(gè)包都查看了一下title和version,最后整理出來(lái),標(biāo)注好了每個(gè)包的作用

# package load ------------------------------------------------------------
library(readr) # Read Rectangular Text Data
library(dplyr) # A Grammar of Data Manipulation
library(sensiPhy) # Sensitivity Analysis for Comparative Methods
library(tibble) # Simple Data Frames
library(weatherData) # Get Weather Data from the Web

他嫌一個(gè)一個(gè)操作太麻煩,于是他寫了個(gè)包,對(duì)每個(gè)R包批量進(jìn)行utils::packageDescription 查看,并且一鍵式操作

我們來(lái)看看這個(gè)包

首先是安裝

# install.packages("remotes")
remotes::install_github("luisdva/annotater")

然后重啟rstudio,會(huì)發(fā)現(xiàn)插件(Addins)這里多了這個(gè)annotater包

最后一鍵式操作,點(diǎn)擊Annotate package calls in active file

就會(huì)看到:

來(lái)一個(gè)動(dòng)圖:

添加包的說(shuō)明信息
當(dāng)然,除了能看每個(gè)包的作用(也就是它們的標(biāo)題),版本可能是更為關(guān)心的

再來(lái)一個(gè)動(dòng)圖:

添加版本信息

但這里需要說(shuō)明,這個(gè)插件只能在library()后面沒(méi)有注釋的情況下使用;
當(dāng)添加了標(biāo)題信息后,就不能繼續(xù)在后面添加標(biāo)題信息

除非把之前的標(biāo)題信息換行,保證library()沒(méi)有注釋,就可以繼續(xù)添加新的版本信息【就像下面這樣】

最后再回顧一下兩個(gè)常用的功能:

歡迎關(guān)注我們的公眾號(hào)~_~  
我們是兩個(gè)農(nóng)轉(zhuǎn)生信的小碩,打造生信星球,想讓它成為一個(gè)不拽術(shù)語(yǔ)、通俗易懂的生信知識(shí)平臺(tái)。需要幫助或提出意見(jiàn)請(qǐng)后臺(tái)留言或發(fā)送郵件到jieandze1314@gmail.com

Welcome to our bioinfoplanet!

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

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