On Mon, Sep 26, 2011 at 2:39 PM, Gene Leynes <gley...@gmail.com> wrote: > I don't understand how this function can subset by i when i is missing.... > > ## My function: > myfun = function(vec, i){ > ret = vec[i] > ret > } > > ## My data: > i = 10 > vec = 1:100 > > ## Expected input and behavior: > myfun(vec, i) > > ## Missing an argument, but error is not caught! > ## How is subsetting even possible here??? > myfun(vec) >
Hello, Gene: It seems to me the discussion of your question launches off into a more abstract direction than we need here. I've found it is wise to name arguments to functions differently than variables in the environment, so you don't have the function looking for i outside itself. And you can put each variable to a ridiculous default to force an error when that option is not given. "NAN" is nothing here, just a string that has no meaning, so we get an error as you said you wanted. myfun <- function(ivec, ii=NAN){ ivec[ii] } myfun(1:40,10) works myfun(1:40) Produces Error in myfun(1:40) : object 'NAN' not found If you are happy enough to just plop out an error, there's no need to worry. Note the function can be written more succinctly than you originally had it, and you are generally advised to use "<-" rather than "=" by the R developers. -- Paul E. Johnson Professor, Political Science 1541 Lilac Lane, Room 504 University of Kansas ______________________________________________ R-help@r-project.org mailing list 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.