[R] calculating the mean of a random matrix (by row) and some general questions
David Winsemius
dwinsemius at comcast.net
Tue Jul 19 22:28:53 CEST 2011
On Jul 19, 2011, at 4:03 PM, RichardLang wrote:
> Thanks for your advice!
>
> I found another method to solve my problem (on page 20 of the manual
> =) ).
> Here's my code
In r-help most of the readers and most of the regular responders are
reading this as a mailing list posting.... not on Nabble and it looks
like you are responding to yourself. I remember what I wrote but the
rest of the readers probably don't and no one can tell if you are
reponding to me or to Nordlund. You are asked in the Posting Guide to
provide context and it's not that hard in Nabble.
>
> # Set n and m to whatever you want
> n = 25
> m = 10
>
> # Build a random vector (here with exponential distribution) with
> lenght of
> n*m
> x = rexp(n*m,1)
>
> # Set up a factor in order to group x into pieces each of size ten
> y = factor( rep(1:n, each = m) )
>
> # tapply will apply mean to each group..
> result = tapply(x,y,mean)
>
There are many ways to skinning that cat:
Try this:
rowMeans( matrix( rexp(n*m,1), ncol=10) )
This will be much faster than Nordlund's answer on bigger tasks,
because the row/colMeans and row/colSums functions are tweaked to be
fast, whereas there is a lot of overhead with the apply functions.
--
David Winsemius, MD
West Hartford, CT
More information about the R-help
mailing list