[R] Multiple operations on list
Liaw, Andy
andy_liaw at merck.com
Tue Sep 21 01:39:25 CEST 2004
Hope this does what you want:
> library(gregmisc)
> cmb <- combinations(length(aa), 2)
> apply(cmb, 1, function(i) sum(diag(aa[[i[1]]] %*% aa[[i[2]]])) /
+ (sum(diag(aa[[i[1]]])) * sum(diag(aa[[i[2]]]))))
[1] 0.5363973 0.3336318 0.6593545
Andy
> From: Stephane DRAY
>
> Hello,
>
> suppose I have a list with matrices:
>
> a=list(x1=matrix(rnorm(10),5,2),x2=matrix(rnorm(10),5,2),x3=ma
> trix(rnorm(10),5,2))
>
> I want to compute for all combination of xi and xj (x1,x2
> x1,x3 and x2,x3)
> a value.
> This value is given for the pair x1,x2 by
> trace(x1%*%t(x1)%*%x2%*%t(x2)) /
> trace(x1%*%t(x1))*trace(x2%*%t(x2))
>
> I know that product matrices t(xi)%*%xi can be obtained by:
>
> aa=lapply(a,crossprod)
>
> but I do not know how to "mix" the values in aa to obtain the
> desired values.
>
> Is there a way to do it without for loop ?
>
> Thanks in advances,
>
> sincerely
>
> Stéphane DRAY
> --------------------------------------------------------------
> ------------------------------------
>
> Département des Sciences Biologiques
> Université de Montréal, C.P. 6128, succursale centre-ville
> Montréal, Québec H3C 3J7, Canada
>
> Tel : (514) 343-6111 poste 1233 Fax : (514) 343-2293
> E-mail : stephane.dray at umontreal.ca
> --------------------------------------------------------------
> ------------------------------------
>
> Web
> http://www.steph280.freesurf.fr/
>
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
>
>
More information about the R-help
mailing list