R 程式設計/軟體包
外觀
< R 程式設計
R 包含一組函式和資料集。包通常作為書籍的補充資料開發。例如,MASS 包是由 Venables 和 Ripley 為他們的書籍 *現代應用統計學與 S* 開發的,而 car 包是由 John Fox 為他的書籍 *應用迴歸的 R 和 S plus 伴侶* 開發的。
使用 library() 函式將包載入到當前 R 環境中。可以使用 library 函式的 h 或 help 引數獲取包中包含的函式和資料集的列表。
library("stats4") # loads the package "stats4"
library(h=stats4) # gives help for all functions
data(package="stats4") # gives the list of all available datasets
可以使用 detach() 函式將包從當前環境中分離。
> detach("package:prettyR")
在沒有引數的情況下,library() 函式列出當前使用者可用的所有包。env() (gdata) 描述所有載入的環境 (即包)。search() 提供所有載入包的列表。
> library() # returns the description of all the packages available on the computer
> dir(.libPaths()) # returns the name of all the packages available on the computer (quicker than the previous one)
> search()
> env(unit="MB")
current.packages() (Zelig) 顯示所有必需和建議的包。
> current.packages("sem")
我的包儲存在哪裡?
- 沒有引數的
.libPaths()函式列印庫目錄。 - 帶目錄作為引數的
.libPaths()函式定義一個新的目錄,用於儲存新的庫。
> .libPaths()
[1] "/Users/username/Library/R/library"
[2] "/Library/Frameworks/R.framework/Resources/library"
> .libPaths("W:/AppData/R/library")
- R 的每個主要發行版都包含一組支援許多基本統計功能的“基礎”包。
- 許多 R 使用者還選擇安裝額外的“附加”包,以提供對 R 命令的簡化介面或新增專業功能,例如 ggplot 語法圖形包提供了高階圖形輸出功能。
- 所有可用包的詳盡列表在 CRAN 網站 上。
- R 社群開發了大量的附加包資源,有些具有獨特的功能,有些功能重疊。因此,經常發現多個 R 包能夠完成相同的任務,例如讀取和寫入 Excel 電子表格。最終使用哪個包是你的選擇。
- 要安裝新包,通常需要將包的名稱指定為 install.packages() 函式的引數。
- 有時你需要指定更多選項。例如,如果你不是你電腦的管理員,就會出現這種情況。
- “lib”指定要儲存包的目錄。
- “repos”指定一個儲存庫列表。請注意,你可以指定一個儲存庫向量。
- “dep=T”指定也下載並安裝所有必需的包。
> install.packages("faraway")
> install.packages("rgrs", lib="W:/AppData/R/library" ,
repos=c("http://r-forge.r-project.org","http://cran.fr.r-project.org/"),
dep=TRUE)
- 保持最新。
如果你想了解最新的包,請在 R 中鍵入 new.packages() 或訪問 Revolution Computing 部落格,該部落格每月提供新包和更新包的列表。
> new.packages() # displays all the packages available in the repositories
> update.packages() # updates all the packages installed with the newest version available in the repositories
我們還可以使用 install.views() 或 update.views() (ctv) 安裝包捆綁。
> install.packages("ctv")
> library("ctv")
> install.views("Econometrics")
> update.views("Econometrics")
我們還可以使用 remove.packages() 刪除包。
包文件和幫助
[edit | edit source]所有 R 包都隨附“幫助”文件,列出其函式並提供語法和使用示例。
> library("tidyr") # load the tidyr package
> help("tidyr") # view the tidyr package's help documentation
有關訪問包“幫助”文件的更多詳細資訊,請參閱 獲取幫助 文件部分。
包依賴項
[edit | edit source]- 大多數 R 包都依賴或引用其他 R 包。在你使用包之前,必須安裝所有 R 包的“必需”依賴項。
- R 包依賴項分為兩種型別:必需和建議。
- 專業 R 包(例如 ggplot 圖形語法包)具有大型包依賴項樹。
install.packages()函式將在具有 Internet 連線的計算機上自動下載並安裝包及其依賴項。- R CMD INSTALL 實用程式將檢查預安裝的包以查詢依賴項,但不下載缺少的包。
- 當在沒有 Internet 連線的計算機上工作時,使用者必須遵循單獨的包下載和安裝過程。miniCRAN 包可用於協助離線管理 R 包依賴項。
構建 R 包
[edit | edit source]你可以寫下你自己的 R 包。但是,提交到 CRAN(或 Bioconductor)的所有包都必須遵循特定準則,包括包的資料夾結構以及其他檔案,如 DESCRIPTION、NAMESPACE 等。
- 請參閱 Friedrich Leisch 的介紹 (PDF 20 頁)[1]
- 另請參閱 Duncan Murdoch 使用 Windows 構建包的工具[2]
- 另請參閱 Hadley Wickham 和 Jennifer Bryan 關於當前打包實踐的線上書籍 (R Packages) [3]
參考文獻
[edit | edit source]- ↑ Friedrich Leisch Creating R Packages : A Tutorial http://cran.r-project.org/doc/contrib/Leisch-CreatingPackages.pdf
- ↑ http://www.r-project.org/conferences/useR-2008/slides/Murdoch.pdf
- ↑ Hadley Wickham 和 Jennifer Bryan R Packages : Organize, Test, Docment and Share your code https://r-pkgs.org/
