跳轉到內容

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]
  1. Friedrich Leisch Creating R Packages : A Tutorial http://cran.r-project.org/doc/contrib/Leisch-CreatingPackages.pdf
  2. http://www.r-project.org/conferences/useR-2008/slides/Murdoch.pdf
  3. Hadley Wickham 和 Jennifer Bryan R Packages : Organize, Test, Docment and Share your code https://r-pkgs.org/
先前:設定 索引 下一個:文件
華夏公益教科書