R   Getopt::Long
               Tsukuba.R #9 (2011/11/12)
                               @a_bicky
parseArgs <- function() {
    argv <- commandArgs(trailingOnly = TRUE)
    argv <- strsplit(argv, "=")
    argv <- sapply(argv, function(arg) {
        ret <- ifelse(is.na(arg[2]), 1, arg[2])
        names(ret) <- arg[1]
        return(ret)
    })

    # show usage
    # Not use 'existsFunction' because loading 'methods' package
takes about 60% of the startup time
    if ("help" %in% names(argv)) {
        tryCatch(usage(), error = function(e) cat("No usage for
this scriptn"))
        quit()
    }

    # check arguments
    # Not use 'existsFunction' because loading 'methods' package
takes about 60% of the startup time
    try(checkArgs(argv), silent = TRUE)

    return(argv)
}
orz
Getopt::Long
Perl                                 parser
use Getopt::Long;
my $data   = "file.dat";
my $length = 24;
my $verbose;
$result = GetOptions ("length=i" => $length,                   # numeric
                      "file=s"   => $data,                     # string
                      "verbose" => $verbose);                  # flag

                  http://search.cpan.org/~jv/Getopt-Long-2.38/lib/Getopt/Long.pm

getopt_long_sample.pl

use Getopt::Long;
GetOptions('save_path=s' => $save_path);
print "$save_pathn";


$ perl getopt_long_sample.pl --save_path=hoge
hoge
…
http://d.hatena.ne.jp/a_bicky/20111020/1319061009
http://d.hatena.ne.jp/a_bicky/20111020/1319061009
http://d.hatena.ne.jp/a_bicky/20111020/1319061009
getopt_long_sample.R

source("GetoptLong.R")
GetOptions('save.path=s' = save.path)
print(save.path)



GetOptions('var1=s'    =   var1,   #
           'var2=i'    =   var2,   #
           'var3=f'    =   var3,   #
           'var4'      =   var4,   #
           'var5=s@'   =   var5,   #
           'var6=i%'   =   var6    #
)
getopt_long_sample.R

source("GetoptLong.R")
GetOptions('save.path=s' = save.path)
print(save.path)




use Getopt::Long;
GetOptions('save_path=s' => $save_path);
print "$save_pathn";
getopt_long_sample.R

source("GetoptLong.R")
GetOptions('save.path=s' = save.path)
print(save.path)




use Getopt::Long;
GetOptions('save_path=s' => $save_path);
print "$save_pathn";
getopt_long_sample.R

source("GetoptLong.R")
GetOptions('save.path=s' = save.path)
print(save.path)




$ RScript getopt_long_sample.R --save.path=hoge
[1] "hoge"
getopt_long_sample.R

source("GetoptLong.R")
GetOptions('save.path=s' = save.path)
print(save.path)
getopt_long_sample.R

source("GetoptLong.R")
GetOptions('save.path=s' = save.path)
print(save.path)
R
getopt_long_sample.R

source("GetoptLong.R")
GetOptions('save.path=s' = save.path)
print(save.path)                                  save.path




# parent.frame
var.names <- as.character(match.call()[-1])




assign(var, ret[[var]], envir = parent.frame())
R
getopt_long_sample.R

source("GetoptLong.R")
GetOptions('save.path=s' = save.path)
print(save.path)                                  save.path




# parent.frame
var.names <- as.character(match.call()[-1])




assign(var, ret[[var]], envir = parent.frame())
             http://user.ecc.u-tokyo.ac.jp/~s105503/p02.html
R版Getopt::Longを作ってみた
R版Getopt::Longを作ってみた

R版Getopt::Longを作ってみた