head.R
1args = commandArgs(TRUE)
2
3if(length(args) != 2){
4 cat("运行命令方式:Rscript head.R dat.csv 5\n\thead.R 为脚本\n\tdat.csv 为数据\n\t5 为行数\n")
5 quit("no")
6}else{
7 dd = read.csv(args[1])
8 n = as.numeric(args[2])
9 head(dd,n)
10}
commandArgs
为TRUE,并赋值给args,这样args[1]是第一个参数,args[2]为第二个参数,以此类推执行:无参数,直接给出帮助文档
1(base) [dengfei@ny01 a]$ Rscript head.R
2运行命令方式:Rscript head.R dat.csv 5
3 head.R 为脚本
4 dat.csv 为数据
5 5 为行数
执行:参数个数不符合要求,直接给出帮助文档
1(base) [dengfei@ny01 a]$ Rscript head.R npk.csv
2运行命令方式:Rscript head.R dat.csv 5
3 head.R 为脚本
4 dat.csv 为数据
5 5 为行数
执行:参数正确,直接执行
1(base) [dengfei@ny01 a]$ Rscript head.R npk.csv 4
2 block N P K yield
31 1 0 1 1 49.5
42 1 1 1 0 62.8
53 1 0 0 0 46.8
64 1 1 0 1 57.0
head2.R
1library(optparse)
2
3option_list <- list(
4 make_option(c("-d", "--dat"), type = "character", default=FALSE,
5 help="请输入数据文件"),
6 make_option(c("-r", "--row"), type="integer", default=FALSE,
7 help="请输入行数")
8)
9
10opt_parser = OptionParser(option_list=option_list);
11opt = parse_args(opt_parser);
12file = opt$dat
13r = opt$row
14
15dd = read.csv(file)
16head(dd,r)
执行:--help,直接给出帮助文档
1(base) [dengfei@ny01 a]$ Rscript head2.R --help
2Usage: head2.R [options]
3
4
5Options:
6 -d DAT, --dat=DAT
7 请输入数据文件
8
9 -r ROW, --row=ROW
10 请输入行数
11
12 -h, --help
13 Show this help message and exit
也可以使用简写的-h形式打印帮助文档
1(base) [dengfei@ny01 a]$ Rscript head2.R -h
2Usage: head2.R [options]
3
4
5Options:
6 -d DAT, --dat=DAT
7 请输入数据文件
8
9 -r ROW, --row=ROW
10 请输入行数
11
12 -h, --help
13 Show this help message and exit
执行:参数正确,直接执行
1Rscript head2.R -d npk.csv -r 4
1(base) [dengfei@ny01 a]$ Rscript head2.R -d npk.csv -r 4
2 block N P K yield
31 1 0 1 1 49.5
42 1 1 1 0 62.8
53 1 0 0 0 46.8
64 1 1 0 1 57.0