前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言如何最简单的写脚本并添加帮助文档

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

作者头像
邓飞
发布2019-12-05 21:29:39
2K0
发布2019-12-05 21:29:39
举报

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
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 育种数据分析之放飞自我 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 默认的参数commandArgs超简单
    • 1.1 脚本示例
      • 1.2 脚本解释
        • 1.3 脚本测试
        • 2. 如果想正式使用`optparse`包
          • 2.1 脚本示例
            • 2.2 脚本解释
              • 2.3 脚本测试
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档