R使用optparse传参如何将空格分隔参数转为逗号分隔字符格式
解决方案
你只需要对拿到的单字符串参数按空格拆分即可,同时注意修正你原有代码中参数配置不匹配的问题,完整可运行代码如下:
# 加载optparse包 library("optparse") # 配置命令行参数,注意和你传入的--pathcsv参数名对应 option_list = list( make_option(c("--pathcsv"), type="character", default=NULL, help="csv文件路径,多个路径用空格分隔", metavar="character") ) opt_parser = OptionParser(option_list=option_list) opt = parse_args(opt_parser) # 按空格拆分单字符串为多元素字符向量 x <- unlist(strsplit(opt$pathcsv, "\\s+")) # 按要求格式打印输出 print(paste0('"', x, '"', collapse = ", "))
代码说明
- 原代码的参数列表只注册了
--test参数,和你实际传入的--pathcsv不匹配,修正后才能正确读取参数值。 strsplit(opt$pathcsv, "\\s+")会按照任意数量的空格拆分字符串,避免多个连续空格导致的拆分错误,unlist用于将strsplit返回的列表格式转为普通字符向量,此时x本身就是包含3个独立元素的字符向量,可直接用于后续逻辑。- 如果仅需要打印出
"test", "test2", "test3"的展示格式,用paste0拼接引号后合并即可。
使用你原有的命令行调用方式即可得到预期结果,无需修改传参逻辑。
内容的提问来源于stack exchange,提问作者fosates264
相关产品推荐
相关产品推荐

