[R] Error:non-numeric argument in my function

Wacek Kusnierczyk Waclaw.Marcin.Kusnierczyk at idi.ntnu.no
Tue Jun 2 10:13:04 CEST 2009


Stavros Macrakis wrote:
> On Mon, Jun 1, 2009 at 11:33 AM, Wacek Kusnierczyk <
> Waclaw.Marcin.Kusnierczyk at idi.ntnu.no> wrote:
>
>   
>> ...  there is an ugly lack of consistency here:...
>>
>>     
>
> I agree that it's inconsistent that
>
>       1:'2'   --> 1:2  # this doesn't seem to be documented in ? seq
>       1+ '2'  --> error
>       1+factor(2)  --> NA (with a warning)
>       1 : factor(4)  --> 1  (uses as.numeric/unclass of factor)
>
>
>   
>> ...i'd expect ...a successful computation (with a character -> numeric
>> coercion of '2' to 2)...
>>
>>     
>
> But I disagree that the best thing to do here is to have them all coerce to
> numerics.  In scripting languages like Perl which are constantly going back
> and forth between internal and external representations, it makes some sense
> to auto-convert numeric strings to numerics and vice versa, but I don't
> think it makes sense in a statistical language.
>
> I would rather see them all give errors.
>   

i think either approach is correct in the scripting language r, provided
the users do not have to navigate between exceptions and errors due to
the inconsistent design.

i agree that having 1:'2' result in an error might be better than what i
suggested above.  i said "i'd expect a successful computation" wrt. 1 *
'2' not because i think it is the best r could do, but because r already
messes with implicit coercions (as in 1:'2' and 1 + 0i, but not 1*'2'
and sqrt(0i)), and it would be easier to learn if you could always
expect a string to be (attempted to be) coerced to numeric in an
arithmetic context.


vQ




More information about the R-help mailing list