[Rd] rowSums()/colSums() don't preserve the 'integer' storage mode

Henrik Bengtsson hb at stat.berkeley.edu
Thu Jul 17 17:15:27 CEST 2008


I had a look at the source code and the coercion to double is only
done one the sum of each row/column, so the "overhead" (e.g. memory)
is only on the summed result.  The integer matrix is *not*coerced to
double before summing, which could be case if done before calling the
native code.  The latter would be consume lots of memory.

My $.02

Henrik

On Wed, Jul 16, 2008 at 11:57 PM,  <Bill.Venables at csiro.au> wrote:
> I don't see the cost of doing so paying off.
>
> storage.mode is really only important if you are passing arguments to
> compiled code.
>
> If you are passing to compiled code, you really need to ensure the
> storage mode is what you think it is, anyway.
>
> Bill Venables.
>
>
>
> -----Original Message-----
> From: r-devel-bounces at r-project.org
> [mailto:r-devel-bounces at r-project.org] On Behalf Of Herve Pages
> Sent: Thursday, 17 July 2008 3:48 PM
> To: R-devel at r-project.org
> Subject: [Rd] rowSums()/colSums() don't preserve the 'integer' storage
> mode
>
> Hi,
>
> Wouldn't that make sense to have rowSums()/colSums() to preserve the
> storage mode?
>
> m <- matrix(1:15, nrow=5)
>
>  > storage.mode(m)
> [1] "integer"
>
>  > storage.mode(sum(m))
> [1] "integer"
>
>  > storage.mode(rowSums(m))
> [1] "double" <------------------- surprising!
>
> Cheers,
> H.
>
> ______________________________________________
> 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
>



More information about the R-devel mailing list