У меня нет проблем с использованием коротких или длинных имен. Когда я указываю обе версии, я могу вызвать либо
toargs <- function(x) strsplit(x, " ")[[1]][-(1:2)]
option_list <- list(make_option(c("-o", "--output_path"), type="character"))
parser <- OptionParser("test", option_list)
parse_args(parser, toargs("Rscript myscript.R --output_path xxx"))
# $output_path
# [1] "xxx"
# $help
# [1] FALSE
parse_args(parser, toargs("Rscript myscript.R -o xxx"))
# $output_path
# [1] "xxx"
# $help
# [1] FALSE
, и он работает только с длинной версией
option_list <- list(make_option("--output_path", type="character"))
parser <- OptionParser("test", option_list)
parse_args(parser, toargs("Rscript myscript.R --output_path xxx"))
# $output_path
# [1] "xxx"
# $help
# [1] FALSE
parse_args(parser, toargs("Rscript myscript.R -o xxx"))
# Error : short flag "o" is invalid
Однобуквенные аргументы не обязательны; они не являются обязательными. Но у вас должно быть длинное имя.
Проверено с optparse_1.6.4