欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

服务器R语言包下载、R包离线安装

程序员文章站 2022-05-27 19:22:01
...

 

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/