R包開發總結

2021-08-19 00:22:28 字數 2246 閱讀 2923

r包開發流程

1.準備工作

1.1 一些準備好的r函式,資料

1.2 在rstudio中建立乙個r package專案

2.開發流程

2.1 新增函式

2.1.1 r檔案

在r包中,所有r檔案都要新增到r資料夾中。注意不能在r資料夾中放入子資料夾,否則roxygen2的document檔案無法寫入

2.1.2 書寫函式文件

在載入了roxygen2包之後,可以在函式上方用 #' 符號為函式新增文件。

函式文件分幾個部分。

1,標題,只能占用一行,不長於80個字元。

2,詳細介紹,空一行之後,可以占用多行.第二段開始會放入文件的details中。每行同樣不能超過80個字元。

3。examples。在文件中新增@examples或@example後新增r語句,即為文件的例子。

4,返回值,在文件中新增@return之後新增返回值解釋。

5.引用其他文件段,新增@describein或@rdname域,並加上文件名,即可直接引用其他的文件段。這兩個域的區別是,

新增@describein之後仍然可以新增其他的文件內容。而使用@rdname的話,在此域後面,只能用域來新增文件,

不能新增description文件。所有沒有網域名稱的文件都必須新增到@rdname的上方。

6,新增外部函式,如果當前函式使用了第三方包的函式,則有兩種方法來使用此函式。第一種,

是在roxygen注釋中新增@import pkg。這種方法會在r包的namespace檔案中新增import域,在載入r包時,

第三方包的所有函式都會被匯入。在使用函式時必須用pkg::fun的方法,以防函式名衝突。第二種方法,

是在roxygen注釋中新增@importfrom pkg fun。這種方法會在namespace檔案中新增importfrom域,

在使用時可以直接使用函式名,就像在.globalenv中建立的函式一樣。這裡推薦第二種引用方法,

因為可以大幅減少函式衝突。

7. 決定是否匯出函式。並不是所有定義了的函式都要讓使用者直接使用。對於那些你想讓使用者直接使用的函式,需要在

namespace檔案中新增export域:export(func)。這裡的處理方法是在roxygen注釋中新增@export。之後,此函式會被

自動新增到namespace中。在對包進行測試時,要多export一些函式,避免重複安裝包導致的繁瑣工作

8.其它roxygen域:@format: 說明格式。@param param description: 引數說明

2.2 新增資料

如果想在包中內嵌一些功能資料或者示例資料,可以先將函式匯入專案全域性環境,然後使用devtools::use_data(),

devtools::create(),並在description中新增lazydata: true

2.3 進行測試

在所有函式都書寫完成之後,可以在專案中對包的功能進行測試。這時可以使用devtools::load_all()函式,這樣

可以匯入包中的所有函式,並進行呼叫。

2.4 新增函式文件, description檔案, namespace檔案

使用devtools::document()為r包生成文件。每個r檔案的文件會分別以file.rd格式存在man資料夾中。同時在r包根目錄下

會生成description和namespace檔案。namespace檔案指定了r包匯出的函式和引用的第三方包或第三方函式。description

檔案是函式的描述文件。其中包含了描述,作者,許可證等重要資訊。標題中的這三類檔案不要手動生成,否則roxygen2包

無法使用document()函式對其進行修改,必須先將這些文件刪除。不過有一部分資訊只能手動修改:

# author資訊直接在description檔案中的author@r域中修改

# 包的版本號直接在description檔案中的version域進行修改

2.5 組裝二進位制r包

在r包的所有內容都生成好之後,使用devtools::build()命令組裝r包。這將在r包專案所在的目錄下生成乙個.tar.gz格式

的壓縮包,這就是我們最終封裝好的r包

3 安裝本地包

安裝本地包的方法:

install.packages("path/package.tar.gz",

repos = null, type = "source")

在linux伺服器上安裝r包時,可以不用單獨安裝依賴包。

之後便可以呼叫library()函式並使用r包中的所有功能。

R開發 常用R語言包

r與python差異比較大的乙個地方就是,python的機器學習演算法集中程度比較高,比如sklearn,就整合了很多的演算法,而r語言更多時候需要乙個包乙個包去了解,比較費時費力,對於python轉過來的朋友非常不友好,抽空整理了工作中常用的r包如下 常用檢驗函式 基本上分布中常見的都羅列了 常用...

R包開發過程記錄

走一遍r包開發過程,並發布到github上使用。1.建立r包框架 建立完成後,在r包資料夾下有如下檔案 夾 2.自定義r包 上面是rstudio為開發者建立的乙個框架,接下來是對自己開發的r包進行編寫和註解。編寫功能函式 點選rstudio右下角files中的r目錄新建r函式 自帶了乙個hello....

R語言常用包分類總結

常用包 資料處理 lubridata plyr reshape2,stringr,formatr,mcmc 機器學習 nnet,rpart,tree,party,lars,boost,e1071,bayestree,gafit,arules 視覺化包 ggplot2,lattice,googlevi...