R 套件

安裝 R 套件

R 官方的 CRAN(the Comprehensive R Archive Network)網站上收錄非常多常用的 R 套件,大部分的套件都可以透過 R 的內建指令直接從 CRAN 下載與安裝。

在 Windows 中可以透過 R 程式套件選單來安裝與管理 R 的套件。

r-packages-installation-windows-3

Windows R 程式套件選單

選擇存放處(repositories)的功能可以讓我們選擇套件的來源。

r-packages-installation-windows-4

R 套件存放處

設定 CRAN 鏡像站則是可以讓我們選擇從哪一個伺服器下載 R 套件,基本上不管選擇哪一個都可以,只是選擇距離自己比較近的伺服器,下載速度會比較快一點而已。

r-packages-installation-windows-1

設定 CRAN 鏡像站

安裝程式套件,直接選擇要安裝的套件名稱,即可立即下載與安裝。

r-packages-installation-windows-2

安裝程式套件

在 Mac OS X 中的套件安裝操作也是跟 Windows 類似。

r-packages-installation-mac-os-x-1

Mac OS X 中安裝 R 套件

有些時候如果您已經知道要安裝的套件名稱,其實使用指令安裝的方式會比較快,我們可以使用 install.packages 這個指令來安裝指定的套件:

install.packages("ggplot2")

安裝多個套件:

install.packages(c("xts", "zoo"))

repos 參數可以指定套件來源網站:

install.packages(c("xts", "zoo"),
  repos = "http://www.stats.bris.ac.uk/R/")

lib 參數可以指定安裝路徑:

install.packages(c("xts", "zoo"),
  lib = "some/other/folder/to/install/to",
  repos = "http://www.stats.bris.ac.uk/R/")

如果要從已下載的套件壓縮檔來安裝,可以執行:

install.packages("/path/to/xts_0.8-8.tar.gz",
  repos = NULL, type = "source")

若在 Windows 中,則會類似這樣:

install.packages("/path/to/xts_0.8-8.zip",
  repos = NULL, type = "win.binary")

若要直接從 GitHub 網站上下載與安裝 R 套件,就要使用 devtools 這個套件工具,首先安裝 devtools

install.packages("devtools")
library(devtools)

接著使用 install_github 來安裝 GitHub 上的套件:

install_github("Rfacebook", "pablobarbera", subdir="Rfacebook")

更新 R 套件

R 套件在安裝之後,我們可以定期使用 update.packages 函數來檢查與更新套件:

update.packages()

預設的狀況下,它會詢問每一個可以進行更新的套件是否需要更新:

git2r :
 Version 0.14.0 installed in /Library/Frameworks/R.framework/Versions/3.3/Resources/library 
 Version 0.15.0 available at http://cran.csie.ntu.edu.tw
Update (y/N/c)?

若想要一次更新所有的套件,不要一一詢問,可以加上 ask = FALSE 參數:

update.packages(ask = FALSE)

也可以只更新指定的套件:

update.packages("ggplot2")

R

1 Comment

  1. EHuang

    您好:
    目前我的R內建的套件是放在
    C:/Program Files/R/R-3.4.1/library
    當中
    而另外加裝的則是放在
    C:/Users/…/Documents/R/win-library/3.4
    裡頭,安裝新套件的defult的路徑也是這裡

    雖然在執行R上並沒有什麼不同,但
    是否有辦法在以後安裝新套件時,
    把新套件直接和內較套件安裝在同一個資料夾 呢?

    煩請解惑了,感謝

Leave a Reply