R参数传递

2022-11-29  本文已影响0人  我想养只猫zhl

方法一: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)

上一篇下一篇

猜你喜欢

热点阅读