[R] getopt does not work as expected!

Trevor Davis trevor.l.davis at gmail.com
Sat Mar 31 02:39:55 CEST 2012

> Why is commandArgs()[1] = "/usr/lib64/R/bin/exec/R" and not
> "getopt_test.R" as described by the help (?getopt)?

That used to work but R changed the behavior of the commandArgs()
function a couple of years ago, I guess the orginal author of getopt
didn't update his example then.

This will do the trick:

args <- commandArgs()
file_index <- grepl("--file=", args)
self <- gsub("--file=", "", args[file_index])

> This behaviour I don't like at all. Why getopt does not distinguish
> beetween options starting with alt least one hyphen and normal arguments
> starting without hyphen? How it is possible to handle such a situation?
> Have I myself to split the arguments into two lists, one with hyphen and
> one without hyphen, and then pass only this list with hyphen to getopt?
> Or is there a better solution?

The author of getopt started but did not finish adding positional
arguments to ``getopt``.  Howevor, positional arguments have been
supported in the ``optparse`` package for over a year if you specify
``positional_args=TRUE`` to the ``parse_args`` function.

- Trevor Davis

More information about the R-help mailing list