創(chuàng)建R包基本流程
1. 建立R包開發(fā)環(huán)境
進(jìn)入Rstudio界面与纽,依次點(diǎn)擊File → New project → New Directory → R package,填寫好R包名字骗污,選擇好開發(fā)包的工作目錄(其它暫時(shí)都不用考慮);最后點(diǎn)擊Creat Project即可漂洋。
-
完成后會(huì)自動(dòng)生成以下文件:
(1)R 文件夾:用于存放R函數(shù)腳本的文件夾;里面有一個(gè)示例文件hello.R
(2)man 文件夾:用于存放對(duì)應(yīng)上述R函數(shù)的說(shuō)明文檔Rd文件的文件夾;里面有一個(gè)示例文件hello.Rd声搁。
(3)DESCRIPTION:關(guān)于R包的說(shuō)明文檔。
(4)NAMESPACE:聲明R包導(dǎo)出以供外部使用的函數(shù)以及R包從其他包導(dǎo)入的外部函數(shù)捕发。其中疏旨,只有R函數(shù)腳本與DESCRIPTION需要我們細(xì)心準(zhǔn)備外,其它可通過一些辦法自動(dòng)寫入扎酷、更新檐涝。
2. 編寫函數(shù)
在R文件夾內(nèi)創(chuàng)建后綴名為.R的函數(shù)腳本,編寫自定義的函數(shù)
把鼠標(biāo)放置在函數(shù)名上,按Ctrl+Alt+Shift+R組合快捷鍵為函數(shù)添加說(shuō)明文檔模板谁榜。
最后使用一下代碼來(lái)生成幫助文檔(man文件夾里的Rd文件)
devtools::document()
3. 編寫DESCRIPTION文件
手動(dòng)修改Version(版本號(hào))幅聘、Title(包的名字),Authors@R(作者名)窃植、Description(包的簡(jiǎn)要描述)
使用下述函數(shù)帝蒿,自動(dòng)編寫License部分。如果沒有依賴到別的具有不同版權(quán)的第三方包的話巷怜,一般選擇最為廣泛使用的 MIT 即可
usethis::use_mit_license()
-
補(bǔ)充依賴包的信息葛超。包括Depends、Imports延塑、Suggests绣张。
- Depends是最強(qiáng)的依賴,即在library的同時(shí)也library所依賴的包页畦,在使用被引函數(shù)的時(shí)候不用加
::
胖替,但可能會(huì)引起函數(shù)名沖突,慎用豫缨。 - Imports:如果只需要使用包中的某個(gè)函數(shù)独令,而不是整個(gè)包,那么引用類型就是Imports好芭。在函數(shù)腳本中燃箭,必須按照
package::function
,如dplyr::filter()
的形式舍败。 - Suggests:如果沒有引用和依賴關(guān)系招狸,僅僅是在例子中使用了該包,那么我們僅僅是建議安裝這個(gè)包邻薯,這個(gè)時(shí)候的關(guān)系是“Suggests(建議)”裙戏。
例如,在函數(shù)中用到了dplyr的filter()函數(shù)厕诡,則要使用以下代碼將dplyr設(shè)為依賴:
- Depends是最強(qiáng)的依賴,即在library的同時(shí)也library所依賴的包页畦,在使用被引函數(shù)的時(shí)候不用加
usethis::use_package(package, type = "Imports", min_version = NULL)
- 單獨(dú)使用Imports累榜、Depends和Suggests引用的都是CRAN上的包,如果想引用Bioconductor上的包灵嫌,需要在前面加上biocViews:
- R包本地安裝測(cè)試
devtools::install_local('path_to_Rpackage',force = T)