打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
R语言如何最简单的写脚本并添加帮助文档

1. 默认的参数commandArgs超简单

1.1 脚本示例

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}

1.2 脚本解释

  • 首先将commandArgs为TRUE,并赋值给args,这样args[1]是第一个参数,args[2]为第二个参数,以此类推

  • 使用length(args)计算参数长度,并使用if判断长度是否为2,参数个数为2,执行else,否则报错

  • 报错这一步中,用cat打印帮助文档,然后quit("no")程序

  • 如果执行程序,直接打印到屏幕上

1.3 脚本测试

执行:无参数,直接给出帮助文档

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

2. 如果想正式使用`optparse`包

2.1 脚本示例

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)

2.2 脚本解释

  • 首先载入optparse包

  • 使用list编写说明文档和关键词

  • 使用parse_args解析参数,编程类似args的格式

  • 调用

2.3 脚本测试

执行:--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

执行:参数正确,直接执行

  • 第一个参数:-d npk.csv

  • 第二个参数:-r 4

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

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
R语言执行脚本的几种命令
R语言中使用Rscript命令代替R CMD BATCH执行命令行指令
R语言接受命令行参数的三种方式
参数 $0 $1
Jmeter参数化与关联--资料收集未整理
R脚本执行
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服