[R] How to mean, min lists and numbers

Duncan Murdoch murdoch.duncan at gmail.com
Mon Jul 12 17:19:16 CEST 2010


On 12/07/2010 11:10 AM, guox at ucalgary.ca wrote:
> I would like to sum/mean/min a list of lists and numbers to return the
> related lists.
>
> -1+2*c(1,1,0)+2+c(-1,10,-1) returns c(2,13,0) but
> sum(1,2*c(1,1,0),2,c(-1,10,-1)) returns 15 not a list.
> Using the suggestions of Gabor Grothendieck,
> Reduce('+',list(-1,2*c(1,1,0),2,c(-1,10,-1))) returns what we want, 
> c(2,13,0).
>
> However, it seems that this way does not work to mean/min.
> So, how to mean/min a list of lists and numbers to return a list? Thanks,

You need to be careful of terminology:  c(1,1,0) is not a list, it's a 
vector.  What you want is to apply functions componentwise to lists of 
vectors.

One way to do that is to bind them into a matrix, and use apply.  For 
example:

M <- cbind(-1, c(1,1,0), c(-1,10,-1))
apply(M, 1, mean)

Duncan Murdoch



More information about the R-help mailing list