博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【R】大型机Linux系统安装R及bsub提交R任务
阅读量:6838 次
发布时间:2019-06-26

本文共 2974 字,大约阅读时间需要 9 分钟。

linux系统的大型机上安装R
需要在大型机上编译安装R,大型机上操作系统是CentOS 5.4。
实际上,参考文献2已经非常详细地列出了如何在linux操作系统上安装R。之所要要写这篇博文,是因为我们现在面临这样一个问题
:如果大型机不能从网络直接下载R,而且大型机上的R久久不得更新,同时大型机的管理员不愿意更新R?
 
安装具体步骤:
1 在CRAN上下载最新R版本的源代码,即文件以.tar.gz结尾
2 解压文件
tar -zxvf R-*(“R-*是R的具体版本文件信息”)并进入解压文件夹
3 注意查看“INSTALL”文件,这个文件简要介绍了安装步骤。之后,configure
./configure --prefix=/home/me/R --enable-R-shlib (--enable-R-shlib保证了R package的共享)
4 安装之
make,
make install
5 因为安装的R不是在root下,所以需要设置自己登录用户的PATH和添加R_HOME和R_LIB路径,设置方法是修改用户路径下的.bashrc文件,"..."省略了安装文件路径
=====================================================
# add R PATH
# Source global definitions 
if [ -f /etc/bashrc ]; then
. /etc/bashrc 
fi 
export PATH=/home/.../R/bin:$PATH
 
# R_HOME and R_LIB 
PATH=${R_HOME}/bin:$PATH 
export R_HOME=/home/.../R/bin/R 
export R_LIBS=/home/.../R/lib64/R/library 
export LD_LIBRARY_PATH=${R_HOME}/lib:${LD_LIBRARY_PATH}
======================================================
之后,在命令行输入R,可以进入自己安装的R,会有警告“WARNING: ignoring environment value of R_HOME”,这个不影响R的正常运行。
 
离线安装R package
通常我们在安装R的package时候,是通过连接网络,然后直接使用函数
install.packages( )。R会很聪明地将所有包的依赖关系搞定。但是,我们离线本地安装R的*.tar.gz的package呢?同样,使用
install.packages( )函数,比如
install.packages("
mypkg.tar.gz
", repos = NULL)。但是,需要自己根据“报错信息”安装依赖的包。
 
命令行执行R CMD 
为了能够在BSUB系统上提交R作业,需要学会使用命令行运行R编写的脚本。在linux下可以使用R CMD BATCHd等一系列命令。
具体使用方法查看文档
man R;
man Rscript 
 
第一种方法:
R CMD BATCH
[options]
infile
[outfile]
options:默认--restore -- save --no-readline;
--help 查看帮助信息;
--version 查看R版本;
--slave 只打印R脚本的输出,而不显示脚本具体执行情况;-
-no-timing 去除输出文档结束的运行时间输出。
outfile:如果没有命名,会照搬infile名字+ .Rout
其实,R CMD BATCH是 
R CMD command
[arguments]其中的一种,具体可以查看man R的文档。
问题:knitr是一个什么角色?
 
第二种方法:
R
[options] [< infile] [> outfile]
options:
--version 查看R版本;
--slave 只打印R脚本的输出,而不显示脚本具体执行情况; 
--vanilla是 
--no-save,
--no-restore,
--no-site-file,
--no-init-file  and 
--no-environ的合体;
--args 后面是需要传递的参数。
注意:options必须选择--save,--no-save, --vanilla三个中的一个。
比如编辑一个testR2.R文件如下:
===================================================================
args <- commandArgs(TRUE)  # TRUE should be set to choose the right arguments
paste(c("I", "like", args[1], "and", args[2], "!"), collapse = " ")
===================================================================
接着运行
R --slave --vanilla --args tea coffee<testR2.R >testR.Rout
查看输出结果
========================================
$
cat testR.Rout
[1] "I like tea and coffee !"
========================================
 
第三种方法:
Rscript
[--options] [-e expr]
file
[args]
options中默认--slave --no-restore;
--version 查看R版本;其他类似第二种方法中的说明。
-e expr:可以通过expr输入R的表达式,比如
-e 'name <- "tea"; source("testR.R")'
args:是需要输入脚本的参数
> file:输出文件
 
可以使用第三种方法,写成R脚本,之后放入系统运行。比如R脚本testR.R:
===================================================
#! /usr/lib/R/bin/Rscript --vanilla 
args <- commandArgs(TRUE)
# paste(c("I", "like", args[1], "and", args[2], "!"), collapse = " ")
print(args)
===================================================
 
执行R脚本
>
chmod +x testR.R
>
./testR.R tea coffee > testR.Rout
 
转自:http://blog.sina.com.cn/s/blog_61f013b80100yhef.html

转载地址:http://jemkl.baihongyu.com/

你可能感兴趣的文章
印花税下调,今天股市上涨概率很大
查看>>
如何描述一张数据表的基本信息?
查看>>
Linux系统下UDP发送和接收广播消息小例子
查看>>
Asp.net跨站脚本攻击XSS实例分享
查看>>
Linux系统下的单调时间函数
查看>>
美国人开发了一个有趣的网站,可以算出你被机器人抢饭碗的概率
查看>>
H.264中NAL、Slice与frame意思及相互关系
查看>>
《Linux From Scratch》第二部分:准备构建 第五章:构建临时文件系统- 5.25. Gzip-1.6...
查看>>
Spark-SparkSQL深入学习系列六(转自OopsOutOfMemory)
查看>>
在HTML下,如何为多个选择框提取数据并序列化
查看>>
还以为敏捷开发是个概念?有人已经将它变为现实了!
查看>>
无服务计算是未来
查看>>
热点推荐:Java类加载器深入理解
查看>>
如何实现一个稍微复杂的simplelist
查看>>
安全课堂:云安全七项最佳实践
查看>>
数据分析,或许不是为了分析,而是为了规范
查看>>
苹果陷恐怖分子数据加密风波 WhatsApp声援
查看>>
新浪微博平台自动化运维演进之路
查看>>
足够安全 美国防部计划将400万部设备升级至Win10
查看>>
转型之旅 VMware是如何践行数字化转型的?
查看>>