# [R] Help w/ matrix calc

Ernesto Jardim ernesto at ipimar.pt
Thu Jul 29 15:38:47 CEST 2004

On Thu, 2004-07-29 at 12:38, eesteves at ualg.pt wrote:
> Dear All,
> Help is needed! I have a matrix with frequencies of fish larvae per length
> class (var. sl) and age-group (var. median.no) obtained with
>
> >k<-table(cut(sl,(5:22)),median.no)
> >k[2:5,1:5] #to ilustrate k
>
>         4  5  6  7
> (6,7]   3  1  0  0
> (7,8]   3  0  1  0
> (8,9]   3  4  3  5
> (9,10]  3 15  7 13
>
> from this matrix I would like to obtain the mean age per length class i.e.
> vector of line means. How can I do this? If, instead of the means I wanted the
> variances, how could I do it?
> Eduardo Esteves
>

Olá Edu,

To compute that kind of statistics it's better to have a vector with
your length values (you can get it from the names of your matrix if you
prefer). I supose you want to use the mean length interval so you can
use the weigthed.mean function

len <- seq(6.5,9.5,1)

lenbar <- apply(k, 2, FUN=function(x){weighted.mean(len,x)})

to get variances you can use

lenvar <- apply(k, 2, FUN=function(x){var(rep(len,x))})

I think you may also use cov.wt but I'm not sure.

A more interesting result can be

lendesc <- apply(k, 2, FUN=function(x){
vec <- rep(len,x)