Great. missing is what I was looking for, and it seems to also work with interfaces like
f=function( type=c("A","B,"C"), ... ) { } Thanks! Youyi On Wed, Aug 19, 2015 at 9:35 AM, Bert Gunter <bgunter.4...@gmail.com> wrote: > ... and you could also use missing() (?missing for details) if you > wanted to give the user more verbose instructions, e.g. > > f1 <- function(type, ...) { > if(missing(type)){ > cat("You must enter a 'type' argument that is one of etc....\n") > return(invisible()) > } > match.arg(type, c("A", "B", "C")) > } > Bert Gunter > > "Data is not information. Information is not knowledge. And knowledge > is certainly not wisdom." > -- Clifford Stoll > > > On Wed, Aug 19, 2015 at 9:19 AM, William Dunlap <wdun...@tibco.com> wrote: >> If you want to force the user to enter the 'type' argument, >> move the vector of choices out of the argument list >> and into the call to match.arg(): >> >> f1 <- function(type, ...) { >> match.arg(type, c("A", "B", "C")) >> } >> f1() >> #Error in match.arg(type, c("A", "B", "C")) : >> # argument "type" is missing, with no default >> f1("X") >> #Error in match.arg(type, c("A", "B", "C")) : >> # 'arg' should be one of “A”, “B”, “C” >> f1("B") >> #[1] "B" >> >> >> Bill Dunlap >> TIBCO Software >> wdunlap tibco.com >> >> On Tue, Aug 18, 2015 at 5:42 PM, Youyi Fong <yf...@fhcrc.org> wrote: >> >>> Hello, I have a function that looks like >>> >>> f=function( type=c("dummy,"A","B,"C"), ... ) { >>> type<-match.arg(type) >>> if (type=="dummy") stop("Please choose a type that is not dummy.") >>> ... >>> } >>> >>> I put a "dummy" in the list of choices as a mechanism to prevent users >>> from not specifying a value for "type" when calling the function. My >>> question is whether there is a better way to achieve it that does not >>> need "dummy". >>> >>> Thanks, >>> Youyi >>> >>> ______________________________________________ >>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >>> https://stat.ethz.ch/mailman/listinfo/r-help >>> PLEASE do read the posting guide >>> http://www.R-project.org/posting-guide.html >>> and provide commented, minimal, self-contained, reproducible code. >>> >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.