方法一:commandArgs()函数
优缺点:R中自带函数,使用方法简单
commandArgs(trailingOnly = FALSE)
# trailingOnly 是否使第一个位置就是命令行参数,默认FALSE,第6个位置是第一个命令行参数
args = commandArgs()
print(args[6])
方法二:argparser包
优缺点:更利于写成流程,但是需要安装,集群上不好安装
基础函数
arg_parser函数
此函数创建参数分析器对象。它从被调用脚本的文件名推断程序名
arg_parser(
description, # 脚本说明
name = NULL, # 脚本的名称
hide.opts = FALSE # 隐藏--opts参数
)
add_argument函数
此函数用于向参数分析器对象并返回修改过的对象
add_argument(
parser, # 参数分析器对象,使用arg_parser函数创建的对象
arg, # 参数名称(位置参数不使用前缀,--或可选参数或标志使用前缀)
help, # 参数的帮助说明
default = NULL, # 参数默认值
type = NULL, # 参数的变量类型(可以从默认值推断);否则假定为字符
nargs = NULL,
flag = NULL,
short = NULL
)
parse_args函数
此函数使用参数分析器对象来分析命令行参数或字符向量
parse_args(
parser, # 参数分析器对象,使用arg_parser函数创建的对象
argv = commandArgs(trailingOnly = TRUE) # 要分析的字符向量(参数和值应该已经被空格分割)
)
使用案例
library(argparser) # 导入包
argv = arg_parser("calculate number add one")
argv = add_argument(argv,"--number",help = 'The calculate number')
argv = parse_args(argv)
number = as.integer(argv$number)
result = number + 1
print(result)
网友评论