2012年12月21日 星期五

如何將 R package 上傳到 R CRAN

2014-08-29 更新說明:
下述方法已為較舊的方法,請各位先依序參考「利用 R-Studio 建立 R Package」、「利用 R-Studio 配合 Rcpp Package 建立包含 C/C++ Code 的 R Package」、「R CRAN 的 Package 上傳規範」及「R CRAN 的 Package 上傳流程」內文的新方法,待新方法無效時,再參考這篇!感謝各位!

# ==================================================
環境:Windows 7 / 64 bits; cmd.exe; R 2.15.2; Rtools 216

必須要有:自製的 R package (本篇為 new_package
_1.0 ,位置在 c:\new\ )
起始狀態:已建構好準備建立 package 的架構,並已編輯好所有 .Rd 檔案。

# ==================================================

Content

01.檢查套件(Checking the package)。
02.製作 .tar.gz 檔案。
03.將 .tar.gz 檔案上傳至 R CRAN 
04.寫信給管理者


# ==================================================

01.檢查套件(Checking the package)。
主要是檢查此套件是否符合文件編輯的規範,以及文件內所提供的例子是否發生錯誤。在檢查的過程當中,通常會有三種狀態,分別是 OK, Warning, and Error 。當出現 Warning 時,可以視情況忽略它;若出現 Error 則一定要修正;當所有的檢查都出現 OK (或含有 Warning ,但不影響)時,表示 package 皆符合規範。筆者曾經因為例子所耗費的時間過長而被退件修正。基於 CRAN 的規範相當多,在此無法一一列舉,請各位閱讀並同意 CRAN Repository Policy

01-1.開始 → 搜尋程式及檔案 → 鍵入 cmd → 點選 cmd.exe 進入出現的視窗。

01-2.鍵入 cd c:\new :將工作目錄移至 c:\new\ 下
01-3.鍵入 Rcmd check new_package 後,便開始一連串的檢查程序。

# ==================================================

02.製作 .tar.gz 檔案。
由於官方網站基於安全考量,不接受二進位(binary)編碼,所以必須將 package 包成 .tar.gz 檔案。

02-1.在 cmd 視窗下,鍵入 R CMD build New_package :製作 New_package_1.0.tar.gz 檔案。


# ==================================================

03.將 .tar.gz 檔案上傳至 R CRAN 。
進入 R CRAN 的伺服器(FTP)後,可以看到許多人上傳的套件。在每個檔案的尾巴通常可以看到三種狀態,分別是: .save, .pending or .noemail 。 .save 應該是表示套件測試沒有問題,可以發佈; .pending 應該是表示對此套件仍有疑問,需進一步釐清後,才可發佈; .noemail 表示尚未收到開發者的來信。基本上,管理群的回覆速度都很快,小編有幾次信件往來的經驗,間隔都在數分鐘內,真是熱心來著。

03-1.開啟檔案總管,並將連結: ftp://CRAN.R-project.org/incoming 貼在網址列上。

03-2.將 New_package_1.0.tar.gz 複製上傳到 R CRAN 的 /incoming 目錄下。

# ==================================================

04.寫信給管理者
在信件主題欄位:「'CRAN submission PACKAGE VERSION'」, PACKAGE 是你的套件名稱、 VERSION 是你的套件版本,並在內容簡單說明一下你上傳的套件名稱與套件功能,且不要在信中附加你的 R package ,接著等待佳音即可。若有任何對 R package 的問題,請先盡量在網路上找資源解決,盡可能減少管理群的負擔,畢竟管理群都是自願服務來著。

04-1.信件標題攔:
「'CRAN submission New_package 1.0'」
04-2.管理者信箱: CRAN@R-project.org

恭禧你在 R CRAN 擁有第一個套件!!!


2012年4月16日 星期一

如何製作一個專屬於自己的 R packages

環境:Windows 7 / 64 bits; R 2.15.2; Rtools 216

01.安裝Rtools工具軟體。
02.準備自己以儲存好的.r檔案。
03.在R環境中鍵入package.skeleton()函數,製作package的目錄結構。
04.編輯Description檔案與.rd檔案。
05.放置C或Fortran程式碼。
06.在windows cmd應用程式中輸入命令,製作.zip或.tar.gz檔案。
07.檢查套件(Checking the package)

01.安裝Rtools工具軟體。

Rtools是在windows下製作R套件的系列工具,內含:
-- CYGWIN:在Windows下模擬UNIX環境
-- MinGW編譯器:用來編譯C和Fortran語言。
-- Perl

01-1-1.選擇適當的版本。
01-1-2.安裝Rtools。

設定文件啟動路徑,其目的在使cmd應用程式可以利用設定路徑去使用相關程式。
01-2-1.在我的電腦→內容→進階→環境變數→系統變數→Path→編輯
在變數值的後面加入『; c:\Rtools\bin; c:\Rtools\perl\bin; c:\Rtools\MinGW\bin; C:\Program Files\R\R-2.14.2\bin\;』(以R 2.14.2為例)

02.準備已儲存好的.r檔案。
new_package.r

03.在R環境中鍵入package.skeleton()函數,製作package的目錄結構。

03-1-1.開啟R程式
03-1-2.鍵入rm(list=ls()):清除所有物件。
03-1-3.鍵入setwd("c:/new"):設定工作目錄,以new為例。
03-1-4.將.r文件複製到工作目錄下,c:\new\。
03-1-5.鍵入package.skeleton(name="new", code_files="c:/new/new_package.r")
在磁碟C中出現new_package資料夾,內含\man與\R資料夾及DESCRIPTION、NAMESPACE、Read-and-delete-me三個檔案。

詳細請參閱?package.skeleton()


04-1.編輯 Description 檔案
04-2.編輯 /man 資料夾內所有 .rd 檔案,或將不需要編輯的 .rd 檔案刪除。


05.放置 C / C++ 或 Fortran 程式碼。
05-1.將 C 或 Fortran 程式碼放到 /src 資料夾底下




06.在 windows 下的 cmd 應用程式中輸入命令,製作.zip或.tar.gz檔案

06-1.開始 → 搜尋程式及檔案 → 鍵入 cmd
06-2.鍵入 cd c:\new :將工作目錄移至 c:\new\ 下
06-3-1.鍵入 Rcmd INSTALL --build New_package:製作.zip檔案。(Windows專用)
06-3-2.鍵入 Rcmd build --binary New_package:製作.tar.gz檔案。(Linux專用)

07.檢查套件(Checking the package)
07-1.鍵入 Rcmd check new_package

參考資料: