[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