Hi Duncan, If vectors of unequal length is the problem, one way to go, using your example, would be:
# your example x <- list(c(9, 5, 7, 2, 14, 4, 4, 3), c(3, 6, 25, 2, 14, 3, 3, 4), c(28, 4, 14, 3, 14, 2, 4, 5), 28) x # maximum number of components k <- max(sapply(x, length)) k # expanding each list of x to have k elements lapply(x, function(l) l[1:k]) # average as requested by Greg colMeans(do.call(rbind, lapply(x, function(l) l[1:k])), na.rm = TRUE) HTH, Jorge On Fri, Oct 29, 2010 at 7:37 PM, Duncan Mackay <> wrote: > Hi Jorge > > I tried your methods for all (which work for complete rows) and then I > remove the first value of $y and repeated; both fail because of the unequal > numbers > The problem is when there are unequal numbers in the rows and trying to > make a matrix of them. > > I was trying some things with Greg's vaules. > x <- list() > x[[1]] <- c(9,5,7,2, 14, 4, 4, 3) > x[[2]] <- c(3, 6, 25, 2, 14, 3, 3 , 4) > x[[3]] <- c(28, 4 ,14, 3, 14, 2 ,4 , 5) > x[4] <- list(28 , 4 ,14 , 3, 14, 2 , 4 ) > > x.av <- list() > for(j in seq_along(1:max(sapply(x,length))) ) x.av[j] <- > mean(sapply(x,"[",j),na.rm=T) > unlist(x.av) # if you want a vector > > which Greg may have used first > > Regards > > Duncan > > Duncan Mackay > Department of Agronomy and Soil Science > University of New England > ARMIDALE NSW 2351 > Email home: mac...@northnet.com.au > > > At 08:53 30/10/2010, you wrote: > >> Hi Greg, >> >> Here are two ways of doing it: >> >> > mylist <- list(x = rpois(10, 10), y = rpois(10, 20), z = rpois(10, 5)) >> > mylist >> $x >> [1] 3 13 14 16 10 7 3 5 12 14 >> >> $y >> [1] 17 16 26 13 23 24 16 28 23 12 >> >> $z >> [1] 2 6 5 5 5 1 9 11 6 4 >> >> > >> > colMeans(do.call(rbind, mylist), na.rm = TRUE) >> [1] 7.333333 11.666667 15.000000 11.333333 12.666667 10.666667 9.333333 >> 14.666667 13.666667 >> [10] 10.000000 >> > >> > Reduce("+", mylist)/length(mylist) >> [1] 7.333333 11.666667 15.000000 11.333333 12.666667 10.666667 9.333333 >> 14.666667 13.666667 >> [10] 10.000000 >> >> >> HTH, >> Jorge >> >> >> On Fri, Oct 29, 2010 at 6:46 PM, Gregory Ryslik <> wrote: >> >> > Hi Everyone, >> > >> > I have a list of vectors like this (in this case it's 3 vectors but >> assume >> > the vector count and the length of each vector is not known): >> > >> > [[1]] >> > [1] 9 5 7 2 14 4 4 3 >> > >> > [[2]] >> > [1] 3 6 25 2 14 3 3 4 >> > >> > [[3]] >> > [1] 28 4 14 3 14 2 4 5 >> > >> > What I want to do is take the average vertically. Thus I want to do >> 9+3+28 >> > /3, 5+6+4 /3, etc... and then have it return a vector. I'm assuming that >> if >> > I can sum it, I can count it to so summing this would be just as >> helpful. >> > >> > I understand I can first go through each element of the list, get a >> vector, >> > cbind into matrix and sum across but I was hoping to avoid that... I >> tried >> > getting it to work with mapply but am having difficulties... >> > >> > Thanks! >> > >> > Kind regards, >> > Greg >> > ______________________________________________ >> > R-help@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. >> > >> >> [[alternative HTML version deleted]] >> >> >> ______________________________________________ >> R-help@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. >> > > ______________________________________________ > R-help@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. > [[alternative HTML version deleted]] ______________________________________________ R-help@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.