[Rd] round() ignores missing arguments if it is used inside another function where some arguments are missing.

peter dalgaard pdalgd at gmail.com
Sat Nov 19 09:13:15 CET 2011


On Nov 19, 2011, at 04:35 , Henrik Bengtsson wrote:

> On Fri, Nov 18, 2011 at 9:34 AM, Kevin R. Coombes
> <kevin.r.coombes at gmail.com> wrote:
>> You can also see the odd behavior without wrapping round in another
>> function:
>> 
>>> round(100.1, digits=)
>> [1] 100
> 
> Hmm... is there a reason for why the parser accepts that construct?

Yes. See e.g. help(alist) for actual usage. 

It can also be used to pass empty arguments to FUN in apply-constructs:

a <- matrix(1:12, 3, 4)
f <- function(i, j) a[i,j]
lapply(1:4, f, i=)


> Some example:
> 
>> parse(text="f(a=)")
> expression(f(a=))
> 
>> parse(text="f[a=]")
> expression(f[a=])
> 
>> parse(text="(a=)")
> Error in parse.default(text = "(a=)") : <text>:1:4: unexpected ')'
> 1: (a=)
> 
> /Henrik
> 
>> 
>> On 11/18/2011 10:19 AM, Joris Meys wrote:
>>> 
>>> On Fri, Nov 18, 2011 at 5:10 PM, Gavin Simpson<gavin.simpson at ucl.ac.uk>
>>>  wrote:
>>>> 
>>>> round is indicated to not evaluate its arguments. I don't follow the C
>>>> code well enough to know if it should be catching the missing argument
>>>> further on - it must be because it is falling back to the default, but
>>>> the above explains that the not evaluating arguments is intended.
>>>> 
>>>> G
>>> 
>>> So if I understand it right, the y argument is not evaluated in the
>>> fun2 function but deeper in the C code. that explains the lack of the
>>> error message, thanks! I keep on learning every day.
>>> Cheers
>>> 
>>> Joris
>>> 
>> 
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>> 
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

-- 
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com



More information about the R-devel mailing list