[R] Newbie: colSums() compared with Matlab's sum()

Francesco Napolitano franapoli at gmail.com
Thu Dec 24 04:16:03 CET 2009


So I see from help([[) what's happening: thank you very much.

Il giorno mer, 23/12/2009 alle 18.59 -0800, Henrik Bengtsson ha scritto:
> Use
> 
>    submat <- data[1:i,, drop=FALSE]
> 
> /H
> 
> On Wed, Dec 23, 2009 at 6:46 PM, Francesco Napolitano
> <franapoli at gmail.com> wrote:
> > Hi all,
> >
> > I'm trying to learn R after years of Matlab's experience. Here is an
> > issue I couldn't solve today.
> >
> > Consider the following piece of code (written by memory):
> >
> > for(i in 1:n){
> >    submat <- data[1:i,]
> >    C <- colSums(submat)
> >    }
> >
> > The problem is that at the first iteration, data[1:1,] reduces to a
> > vector and colSums returns an error. This sounds really strange to me
> > because a sum-over-columns operation should have no problem working with
> > columns of length 1. Matlab's "sum()" works just fine in such case.
> >
> > The error says that I need an at least 2D array. So I try using
> > matrix(data[1:i,]). Unfortunately this returns a column instead of a
> > row. So I could do t(matrix(data[1:i,])), but this would transpose the
> > also the sub-matrices from the 2nd iteration on. I could fix everything
> > with some "if" but it would be really terrible code :-/.
> >
> > I'm sure I'm missing something because my neurons stick with Matlab
> > behaviour. Can you help me to understand what's wrong with my reasoning?
> >
> > Thank you very much,
> > Francesco.
> >
> > ______________________________________________
> > R-help at r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> > and provide commented, minimal, self-contained, reproducible code.
> >




More information about the R-help mailing list