1. 程式人生 > >伺服器R語言包下載、R包離線安裝

伺服器R語言包下載、R包離線安裝

1、R包介紹:

1.1、R包(package)通常有兩種:

  • 二進位制程式碼包(Binary package):這種包屬於即得即用型(ready-to-use),但是依賴平臺,比如Windows和Linux平臺下不同。

  • 原始碼包(Source package): 此類包可以跨平臺使用,但用之前需要處理或者編譯(compiled)。同時,原始碼包可以檢視到程式原始碼,便於查詢、修改和引用。

2、R包安裝

2.1、原始碼安裝

選擇相應的包點選進入選擇適合版本下載,嫌查詢麻煩的話可以網址上輸入R包名稱,比如xgboost包:

執行:

# R CMD INSTALL /.../myPackage.tar.gz

使用此方法,需要解決包依賴問題,即安裝此包所依賴的包,安裝過程有提示,需要將所有相關依賴R包全部安裝成功後,才會被成功安裝,依賴包單獨下載及安裝比較麻煩,解決辦法如下:

第一步:下載包和依賴到本地目錄下:

getPackages <- function(packs){
  packages <- unlist(
    tools::package_dependencies(packs, available.packages(),which=c("Depends", "Imports"), recursive=TRUE)
  )
  packages <- union(packs, packages)
  packages
}
 
myPackages <- c("dplyr","sqldf","DBI","rJava","RJDBC","forecast","lubridate","xgboost","ggplot2","plyr")
 
packages <- getPackages(myPackages)
 
download.packages(packages, destdir="E:/R_packages/", type="source")

第二步:把包和依賴傳入離線環境後,離線安裝:

library(tools)
path <- "E:/R_packages"
write_PACKAGES(path,type="source")
myPackages <- c("dplyr","sqldf","DBI","rJava","RJDBC","forecast","lubridate","xgboost","ggplot2","plyr")
install.packages(myPackages, contriburl=paste("file:",path,sep=''),type="source")

這種方法可以解決原始碼包安裝依賴包的問題;另外由於資料安全問題,針對大多資料工作都是在離線環境下完成的這一情況,該方法也可以實現R包的方便安裝。

2.2、內建install.packages()函式安裝

使用install.packages()安裝,比較簡便,聯網即可安裝即可用。使用這種方法安裝包時,R會自動安裝依賴的包。有一點需要注意的是,一些R包只能在特定的平臺上使用。比如Rsubread不能在Windows作業系統下使用。

install.packages('myPackage')

同時,可以使用install.packages()安裝本地下載的包,尤其適用於在伺服器上安裝包

install.packages(
c('XML_0.99-5.tar.gz', '../../Interfaces/Perl/RSPerl_0.8-0.tar.gz'),
repos = NULL,
configure.args = c(XML = '--with-xml-config=xml-config', RSPerl = '--with-modules= "IO Fcntl"'))

3、R包相關函式

# 檢視包的安裝目錄
.libPaths()

# 檢視已經安裝的包及歸屬目錄
library()

# 檢視已安裝包資訊
installed.packages()

# 載入myPackage包
library(myPackage)
require(myPackage)

# 檢視當前載入的包
search()

# 檢視啟動R時自動載入的包。
getOption('defaultPackages')

參考: