R语言命令行写linux,如何在Linux上编写和使用R脚本
——by不是杀杀
虽然大多数时候在Windows下和在Jupyter中能够非常方便快捷地进行R语言编程,但对于处理数据量较大的工作时,还是避免不了需要在服务器上运行我们写的代码,那么我们要如何方便快捷地将代码编写成脚本移植到服务器上运行呢?
要在服务器上运行R,首先要有R的环境。
R的安装(Debian)
sudo apt install r-base
查看安装是否成功
R --version
安装成功
有了R语言环境我们就可以编写我们的脚本了
编写脚本
可以直接将Windows下我们写好的代码拷贝到服务器上,或者用vim创建文本文件,将文件命名后缀为.R的文件。
脚本的运行
Rscript 脚本名称.R
以上是基础的R语言脚本的使用
接下来是进阶版——编写R语言工具(入门)
有时候我们写了一个函数,但是不想没错都通过修改脚本的方法修改参数(比如数据路径等),我们可以通过命令行传递参数的方法,将我们的脚本编写成一个小工具。
R语言命令行参数传递函数
commadArgs()
R自带的函数,按顺序位置传递参数,无法编写帮助文档,用于简单脚本
getopt()
getopt包中函数。可以输出帮助文档。
3. OptionParser()
optparse包中函数,可以自定义参数名字以及输出帮助文档,今天主要给大家介绍这个函数的用法
首先安装optparse包
install. Packages(‘optparse’)
接着在我们编写好的脚本中,写好我们的函数
假设我们的脚本名称为Afunction.R 里面有下面这样的函数
Afunction
要想将其变成方便的小工具我们需要将这个脚本变成这样:
library('optparse') #调用optpares包
option_list
make_option( c("-d", "--data"), type = "character", default = FALSE, help = "输入文件"),
make_option( c("-c", "--cutoff"), type = "integer", default = 0, help = "选取阈值"),
# type为输入参数的类型,有“logical”, “integer”, “double”,“complex”, “character”这几种类型
# default为该参数的默认值,当用户没有输入该值时使用默认值,
#help为输出的帮助信息
) #有几个参数就用几个make_option
opt_parser = OptionParser(option_list=option_list) #解析参数
opt = parse_args(opt_parser) #解析参数
x1 = opt$data #将输入的-d参数传递给x
y1 = opt$cutoff #将输入的-c参数传递给y
Afunction
write.table(Afunction(x1,y1),"result.csv",quote = F,col.names = T,row.names = F,sep=',') #调用函数并将结果保存成文件输出
这样我们就能直接在我们的命令行运行我们的小工具了
如在命令行中输入:
Rscript Afunction.R -d ./Data.tsv -c 9 #输入文件为Data.tsv 阈值为9
还有可以通过 -h参数输出帮助文档
Rscript Afunction.R -h #输出帮助文档
实例:最近写的一个奇怪的小脚本
一个脚本的optparse的使用部分
通过-h输出自己能看懂的帮助文档(别人能看懂那就更好了
输出的帮助文档
期间还遇到一个小问题:如何传递为数组的参数
因为没有看到type可以为数组之类的类型,所以用一个比较简单直接的方法解决:以字符串的形式按规定的格式进行输入,再通过strsplit分割,再转变为数值。
R语言命令行写linux,如何在Linux上编写和使用R脚本相关推荐
- R语言命令行写linux,linux命令行下使用R语言绘图实例讲解
使用系统:centos 6.4 64bit 在R语言中可以使用png()等函数生成图片,例如: png("aa.png")可以生成图片. 但是如果你是通过shell远程连接到系统上 ...
- linux命令行安装 php_如何在 Linux 命令行中使用和执行 PHP 代码
PHP是一个开源服务器端脚本语言,最初这三个字母代表的是"Personal Home Page",而现在则代表的是"PHP:Hypertext Preprocessor& ...
- linux命令行的操作符,如何在Linux命令行中进行基本的数学运算
原标题:如何在Linux命令行中进行基本的数学运算 Linux bash或命令行允许您执行基本和复杂的算术和布尔运算.像expr,jot,bc和factor等命令可以帮助您找到复杂问题的最优数学解决方 ...
- linux命令行学习游戏,如何在Linux命令行中下载GOG游戏
如果你是一个游戏玩家同时也是一个Linux用户,你可能很高兴在GOG在几个月前宣布它会在你最喜欢的操作系统上推出游戏.如果你之前从来没有听说过GOG,我鼓励你看看他们的产品目录中的"很棒的老 ...
- linux 命令行删除分区,如何在 Linux 中删除分区
管理分区是一件严肃的事情,尤其是当你不得不删除它们时.我发现自己经常这样做,特别是在使用 U 盘作为实时磁盘和 Linux 安装程序之后,因为它们创建了几个我以后不需要的分区. 在本教程中,我将告诉你 ...
- linux怎么滑动命令行窗口_如何在Linux命令行界面愉快进行性能测试
本人在做性能测试的过程中,遇到一个问题,测试机选了一台Linux服务器,只有命令行界面.执行测试用例不是非常的灵活,有时候我需要改一两个参数添加一些日志,都需要重新打包部署,虽然自动化构建比较方便,但 ...
- r语言 柱状图加星号_如何在地图上添加柱形图(R语言)
首先,了解一下ESRI Shapefile(shp)格式文件: 用于描述几何体对象:点,折线与多边形.例如,Shapefile文件可以存储井.河流.湖泊等空间对象的几何位置.除了几何位置,shp文件也 ...
- linux命令行引导iso,如何在Linux上使用命令行从可启动ISO创建可启动USB?
isohybrid可能并不总是有效.例如,我有一个带FreeDOS的.iso,isohybrid无法在其中找到一些重要文件(我不知道它们是否应该由syslinux(我也使用过)或其他东西放置在该文件中 ...
- linux命令行安装java_如何在Linux平台命令行环境下安装Java1.6
在Debian平台,请输入以下的命令 $ sudo vi /etc/apt/sources.list 在里面加入下面的一行 deb http://ftp.us.debian.org/debian/ s ...
最新文章
- android调用c闪退未看到log,解决:Android开发 看不到崩溃的日志
- Netty实战 IM即时通讯系统(六)实战: 客户端和服务端双向通信
- Java基础(三十二)JDBC(2)连接数据库
- Linux centOS 硬盘分区挂载
- Silkroad 与 Tesseract 通信协议 QuestionModel
- gitserver提交代码的总结
- 寒流来袭·《求职初体验》
- c语言中除法取整6,关于C语言的除法与取整问题!?
- 我的大学 --- 郭天祥【2】
- python测试开发面试题带答案整理
- oracle 中dummy,layout设计中dummy的作用详解(上图。好贴好贴,讲的很仔细)
- nodejs 中读取 package.json 文件内容
- 使用周权重指数追踪及预测咖啡店销售数据
- 敏捷项目管理实战第一天 敏捷开发SCURM的前世今生
- 重装Windows10后调节亮度无效,一直是最亮
- vue 移入显示_vue鼠标移入显示点赞图标,移出隐藏点赞图标,现在我想点击点赞图标,鼠标移出不会隐藏图标,怎么做?...
- liquibase(数据库管理)
- IT运维管理的服务内容包括哪些
- Go 语言中的字符串拼接
- 人脸论文解读系列——三维人脸重建(一)