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

Henrik Bengtsson hb at biostat.ucsf.edu
Sat Nov 19 04:35:06 CET 2011


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?
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
>



More information about the R-devel mailing list