Hello:
I found a way to break the "match.arg" function I sent a few hours ago.
The following works better, I believe.
Thanks again for your great work on the R project.
Spencer Graves
##########################
match.arg <-
function (arg = NULL, choices= NULL)
{
if (is.null(choices)) {
formal.args <- formals(sys.function(sys.parent()))
choices <- eval(formal.args[[deparse(substitute(arg))]])
}
# cat("choices =", choices, "; arg =", arg, "\n")
if((length(arg)==length(choices)) && all(arg==choices))
return(choices[1])
for(j in 1:length(arg)){
if (all(arg[j] == choices))
arg[j] <- choices[1]
else{
i <- pmatch(arg[j], choices)
if (is.na(i))
stop(paste("'arg' =", arg[j],
"should be one of", paste(choices, collapse = ", "),
sep = " "))
if (length(i) > 1)
stop("there is more than one match in match.arg")
arg[j] <- choices[i]
}
}
arg
}
______________________________________________
[EMAIL PROTECTED] mailing list
http://www.stat.math.ethz.ch/mailman/listinfo/r-devel
- [Rd] match.arg Spencer Graves
- Re: [Rd] match.arg Martin Maechler
- Re: [Rd] match.arg Spencer Graves
- Spencer Graves