R 语言输入输出 读取命令函参数
输入数据
使用键盘输入数据
只能处理小样本,很少使用
在创建 data.txt 字符串之后,用函数 read.table() 创建数据框 data.1。这种方法可以让我们把数据嵌入到R代码中,此处切记,read.table() 使我们最为常用的读取外部数据的函数。

下面的方法是用函数 fix() 创建了一个和data.1一样的数据框 data.2,函数 edit() 也有同样的效果。


从文本文件导入数据 read.table()
函数 read.table() 更加常用的是从带有分隔符的文本文件中国读入数据并创建数据框。类似的函数有 read.csv(),read.csv2()

例子
data.3 <- read.table(file="example.txt", header = T, quote = "\"", sep = ",") # header = T 表示第一行是变量名不做事数据一部分 header = F 表示第一行也作为数据的一部分
data.4 <- read.table(file="example.txt", header = T, skip = 7, sep = ",", quote = "\"", row.names = "Study")
从 xlsx 文件中读入数据
需要使用R包 openxlsx 或者 readxl
输出数据
输出函数:cat() print() write() sink() writeLines() write.table()
在R里,输出到屏幕不要用print() 而是用cat()。因为 print() 输出的字符都是只能显示在控制台,而控制台只能显示文本,所以回车符 制表符都会员样输出
cat() 函数既能输出到屏幕也能输出到文件 需要手动添加换行符
cat(..., file = " ", sep = " ", fill = FALSE, labels = NULL, append = FALSE)
有file时,输出到file;无file时,输出到屏幕
append 参数:布尔值。TRUE 输出内容追加到文件尾部,FALSE 输出的内容覆盖文件的原始内容。

print() 函数 原封不动的输出对象 比对列表
print(x, ...) ## S3 method for class 'factor'
print(x, quote = FALSE, max.levels = NULL, width = getOption("width"), ...) ## S3 method for class 'table'
print(x, digits = getOption("digits"), quote = FALSE, na.print = "", zero.print = "0", right = is.numeric(x) || is.complex(x), justify = "none", ...) ## S3 method for class 'function'
print(x, useSource = TRUE, ...)


write()用于输出到文件,也可以输出到标准输出,无需手动添加换行符
write(x, file = "data", ncolumns = if(is.character(x)) 1 else 5, append = FALSE, sep = " ")
当 file = "" 时 输出到标准输出

sink() 函数将输出结果重定向到文件
sink(file = NULL, append =FALSE, type = c("output", "message"), split = FALSE)
append参数:布尔值。TRUE时 输出内容追加到文件尾部,FALSE时 覆盖文件的原始内容。

writeLines() 函数将字符串向量输出到文件中 也可以输出到标准输出 会覆盖原始内容
writeLines(text, con = stdout(), sep = "\n", useBytes = FALSE)
text:字符串向量
con:输出文件, 默认输出到标准输出

write.table()函数将 data.frame 的内容输出到文件或者标准输出
write.table(x file = "", append = FALSE, quote = TRUE, sep = " ", eol = "\n", na = "NA", dec = ",", row.names = TRUE, col.names = TRUE, qmethod = c("escape", "double"), fileEncoding = "")

读取命令行参数
commandArgs() 是R自带的参数传递,属于位置参数
args = commandArgs(trailingOnly = FALSE) # R程序自带参数,从第6个开始才是命令行输入的参数
args = commandArgs(trailingOnly = TRUE) # 此时 输入的第一个参数就是程序的第一个参数


如果改为 args = commandArgs(trailingOnly = FALSE) 输出结果如下:

getopt 包中的 getopt() 函数也可以接受从终端传递的参数,并且功能更加丰富
getopt(spec = NULL, opt = commandArgs(TRUE), command = get_Rscript_filename(), usage = FALSE, debug = FALSE)
其中 spec 是一个4列或者5列的矩阵,里面包括了参数信息,前四列是必须的,第五列是可选的
第一列:指定参数的 longname ,多个字符
第二列:指定参数的 shortname,一个字符
第三列:指定参数是必须的还是可选的,数字,0 不接受参数 1 必须有参数 2 参数可选
第四列:指定参数的类型 logical integer double complex character numeric
第五列:注释信息 可选
usage:默认为FALSE 这是参数无实际意义,而是以用法的形式输出。
library(getopt)
spec = matrix(c(
'verbose', 'v', 2, "integer",
'help' , 'h', 0, "logical",
'count' , 'c', 1, "integer",
'mean' , 'm', 1, "double",
), byrow=TRUE, ncol=4)
opt = getopt(spec)
print(opt$count)
print(opt$mean)

如何制作脚本的帮助
command=matrix(c("bam","b",,"character",
"bed","d",,"character",
"png","p",,"character",
"help","h",,"logical"),byrow=T,ncol=)
args=getopt(command)
if (!is.null(args$help) || is.null(args$bam) || is.null(args$png) || is.null(args$bed)) {
cat(paste(getopt(command, usage = T), "\n"))
q()
}
R 语言输入输出 读取命令函参数的更多相关文章
- R语言如何读取.csv文件
以下是我关于如何在R语言中读取.csv文件及一些需要注意的细节的总结,希望能帮助到大家~
- r语言之散点图绘制及参数
一个简单的例子: > plot(cars$dist~cars$speed,+ main="车位移与速度的关系",+ xlab="速度",+ ylab=&q ...
- C语言:使用命令行参数用字符串读取流和输出流进行文本文件的复制
#include<stdio.h> int main(int argc,char *argv[]) { //检查用户的参数是否正确 if(argc<3) { printf(" ...
- R语言--输入输出
基本输入输出 输入: readline, edit, fix 输出: print, cat 输出重定向 sink #基本输入输出 x=readline('请输入:') #读取输入,一行为一个字符串 x ...
- R语言:读取数据
主要学习如何把几种常用的数据格式导入到R中进行处理,并简单介绍如何把R中的数据保存为R数据格式和csv文件. 1.保存和加载R的数据(与R.data的交互:save()函数和load()函数)a &l ...
- R语言包相关命令
R的包(package)通常有两种:1 binary package:这种包属于即得即用型(ready-to-use),但是依赖与平台,即Win和Linux平台下不同.2 Source package ...
- r语言之散点图类型type参数
type参数用来控制所生成散点图的类型,有如下几个选项: type=“p”表示绘制单独的点 type=“l”表示绘制点连成的折线 type=“b”表示有线连接的点 type=“o”表示将点绘在线上 t ...
- Go 中读取命令参数的几种方法总结
前言 对于一名初学者来说,想要尽快熟悉 Go 语言特性,所以以操作式的学习方法为主,比如编写一个简单的数学计算器,读取命令行参数,进行数学运算. 本文讲述使用三种方式讲述 Go 语言如何接受命令行参数 ...
- .NET Core采用的全新配置系统[5]: 聊聊默认支持的各种配置源[内存变量,环境变量和命令行参数]
较之传统通过App.config和Web.config这两个XML文件承载的配置系统,.NET Core采用的这个全新的配置模型的最大一个优势就是针对多种不同配置源的支持.我们可以将内存变量.命令行参 ...
随机推荐
- 阿里巴巴Java开发手册更新了!
自2017年,<阿里巴巴Java开发手册>发布,现已有超过260万位工程师下载及查阅手册,在数以千计的企业应用,手册成为受业界认可的开发规范. 昨天,<Java开发手册>再次更 ...
- Ansible--Ansible之Playbook
Ansible之Playbook Playbook介绍 playbook参考文档 Playbook与ad-hoc相比,是一种完全不同的运用ansible的方式,类似与saltstack的state状态 ...
- Vue学习之基础及部分指令小结(一)
一.理解MVC和MVVM的关系: MVC:Model View Controller (模型 视图 控制器) 分别为:业务逻辑.界面.用来调度View和Model层 MVVM:Model View V ...
- 25、vuex改变store中数据
以登录为例: 1.安装vuex:npm install vuex --save 2.在main.js文件中引入: import store from '@/store/index.js'new Vue ...
- React学习笔记①
三种导出方式 export let num = 1://1 let num2 = 2://2 export {num2};//2 export default {default}//3 三种导入方式 ...
- 英语caement单词caement水泥
水泥石 又称净浆硬化体.是指 硬化后的水泥浆体,称为水泥石,在英语里是cement有时写作caement [1] ,是由胶凝体.未水化的水泥颗粒内核.毛细孔等组 成的非均质体. 中文名:水泥石 外 ...
- SpringCloud SpringBoot 前后端分离企业级微服务架构源码赠送
基于SpringBoot2.x.SpringCloud和SpringCloudAlibaba并采用前后端分离的企业级微服务敏捷开发系统架构.并引入组件化的思想实现高内聚低耦合,项目代码简洁注释丰富上手 ...
- TensorFlow NMT的词嵌入(Word Embeddings)
本文转载自:http://blog.stupidme.me/2018/08/05/tensorflow-nmt-word-embeddings/,本站转载出于传递更多信息之目的,版权归原作者或者来源机 ...
- 解决vue多次提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <template> <button @click="subm ...
- linux启动介绍
1. linux内核3.0之前,使用init(初始化 )进程管理的启动程序.一旦升级到3.0(centos7)使用systemd的方式进行管理. 2. 启动模式:启动后执行哪些典型的操作.vi/etc ...