On Nov 18, 2011, at 10:43 AM, Joris Meys wrote: > I have stumbled across some behaviour in R that I really can't place, > and that makes coding a bit tricky. I know that I can work around it > when explicitly checking for missing arguments, but still... > I have two functions. I have a first function based on paste > > fun1 <- function(x,y){ > print(missing(y)) > paste(x,'X',sep=y) > } > > If I try this function without specifying `y`, I get the (expected) > error message: > > > fun1(letters[1:6]) > [1] TRUE > Error in paste(x, "X", sep = y) : > argument "y" is missing, with no default > > The second one with round : > fun2 <- function(x,y){ print(missing(y)) round(x,digits=y) } > If I try this function without specifying `y`, it works unexpectedly > whereas it shouldn't : > > fun2(100.1) [1] TRUE [1] 100 > In my view, fun1 should definitely give the error message as well, as > it is not intended to have a default behaviour when y is missing. > Still, the round() function ignores the fact y is missing. Is this by > design, is there a check missing in round, or is something else going > on that I am overlooking? >
> round function (x, digits = 0) .Primitive("round") it has a default so it is fine for digits to be missing since it will have value 0 in that case ... Cheers, S > Cheers > Joris >> sessionInfo() > R version 2.14.0 (2011-10-31) > Platform: i386-pc-mingw32/i386 (32-bit) > > locale: > [1] LC_COLLATE=English_United Kingdom.1252 > [2] LC_CTYPE=English_United Kingdom.1252 > [3] LC_MONETARY=English_United Kingdom.1252 > [4] LC_NUMERIC=C > [5] LC_TIME=English_United Kingdom.1252 > > attached base packages: > [1] stats graphics grDevices utils datasets methods > [7] base > > loaded via a namespace (and not attached): > [1] tools_2.14.0 > > -- > Joris Meys > Statistical consultant > > Ghent University > Faculty of Bioscience Engineering > Department of Mathematical Modelling, Statistics and Bio-Informatics > > tel : +32 9 264 59 87 > joris.m...@ugent.be > ------------------------------- > Disclaimer : http://helpdesk.ugent.be/e-maildisclaimer.php > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel