服务器R语言包下载、R包离线安装
1、R包介绍:
1.1、R包(package)通常有两种:
-
二进制代码包(Binary package):这种包属于即得即用型(ready-to-use),但是依赖平台,比如Windows和Linux平台下不同。
-
源代码包(Source package): 此类包可以跨平台使用,但用之前需要处理或者编译(compiled)。同时,源代码包可以查看到程序源代码,便于查找、修改和引用。
2、R包安装
2.1、源代码安装
下载路径:https://cran.r-project.org/src/contrib/Archive/
选择相应的包点击进入选择适合版本下载,嫌查找麻烦的话可以网址上输入R包名称,比如xgboost包:
示例路径:https://cran.r-project.org/src/contrib/Archive/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')
参考:
https://blog.csdn.net/learneraiqi/article/details/46357129
https://blog.csdn.net/liu365560704/article/details/70321153/
下一篇: mPaas之如何查找离线包的在线加载地址