[Rd] warning or error upon type/storage mode coercion?

Henrik Bengtsson hb at stat.berkeley.edu
Wed Sep 15 06:18:51 CEST 2010


On Tue, Sep 14, 2010 at 6:23 PM, Benjamin Tyner <btyner at gmail.com> wrote:
> Hi,
>
> I'm aware that the language definition states "R objects are often coerced
> to different types during computations". Two questions:
>
> 1. Is it possible to configure the R environment so that, for example,
> coercion from (say) numeric to integer will throw a warning or an error? I
> realize that in the base R code alone, there are thousands of calls to
> as.integer() which would trigger such an event, so this would not be a very
> practical configuration...
>
> 2. So, assuming the answer to (1) is a resounding "no", does anyone care to
> state an opinion regarding the philosophical or historical rationale for why
> this is the case in R/S, whereas certain other interpreted languages offer
> the option to perform strict type checking? Basically, I'm trying to explain
> to someone from a perl background why the (apparent) lack of a "use strict;
> use warnings;" equivalent is not a hindrance to writing bullet-proof R code.

For what's it's worth: it is only recently (only some R releases ago)
that the language/parser gained the syntax for specifying an integer,
e.g. 2L.  I guess, before this the only option you had to get an
integer was through coercion, e.g. as.integer(2), storage.mode(), but
also tricks such as 2:2.  So in some sense from the parsers point of
view, everything was doubles in the beginning.  (disclaimer: I might
be missing something).

My $.02

/Henrik

PS. OT, but reading help(":") I just learned that a:b is not always
the same as rev(b:a).

>
> Thanks,
> Ben
>
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
>



More information about the R-devel mailing list