问题描述
R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R语言开源的生态为我们提供了丰富强大的R扩展程序包(R package),帮助我们开展各类分析工作。
在能连接到互联网的环境下,我们可以使用install.packages("xx")
命令轻松下载R程序包并加载,但如果无法连接到互联网(如军工专网、虚拟机等),我们用什么方式来安装R程序包呢?
本文介绍一种Linux系统中,无法连接到互联网时,离线安装R程序包的解决方案,环境信息如下:
外网环境:Windows +R 3.5.2
内网环境:Linux CentOS + R 3.5.2
解决方案
以时序分析常用的单位根检验工具包fUnitRoots
和预测分析包forecast
为例说明。
1.在Windows R中下载安装包
首先进入R控制台,指定下载镜像,采用国内清华的镜像,速度较快,推荐使用。
options(repos=structure(c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")))
定义一个获取程序包的函数
getPackages <- function(packs){
packages <- unlist(
tools::package_dependencies(packs, available.packages(),which=c("Depends", "Imports"), recursive=TRUE)
)
packages <- union(packs, packages)
packages
}
指定要下载的程序包
packages <- getPackages(c("fUnitRoots","forecast"))
以源码方式将程序包下载至Windows指定文件夹下
download.packages(packages, destdir="E:/rpackage/", type="source")
下载完成后,在指定目录下可以看到下载完成的文件。
2.将下载的源码包上传至Linux
使用xftp工具将下载的源码包上传至Linux的特定目录。
3.Linux R中编译安装程序包
进入R控制台,输入以下命令,编译安装程序包。
注:Linux要有make
make install
命令支持,如果没有命令需安装gcc。
library(tools)
path <- "/root/rpackage"
write_PACKAGES(path,type="source")
myPackages <- c("fUnitRoots","forecast")
install.packages(myPackages, contriburl=paste("file:",path,sep=''),type="source")
过程如图所示:
加载
library(fUnitRoots)
library(forecast)
声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。