Re: Map function with 2 variables
- To: mathgroup at smc.vnet.net
- Subject: [mg114970] Re: Map function with 2 variables
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Fri, 24 Dec 2010 04:14:08 -0500 (EST)
- Reply-to: hanlonr at cox.net
Use Outer
Needs["MultivariateStatistics`"]
m = RandomReal[{0, 1}, {3, 100}];
Outer[SpearmanRankCorrelation, m, m, 1] ==
{SpearmanRankCorrelation[m[[1]], #] & /@ m,
SpearmanRankCorrelation[m[[2]], #] & /@ m,
SpearmanRankCorrelation[m[[3]], #] & /@ m}
True
Bob Hanlon
---- Jagra <jagra24891 at mypacks.net> wrote:
=============
I have a problem that comes up in a couple of situations and I've
never found the right solution. I hoped I could get an idea of how to
generally address these kinds of things.
Say I have a function with two variables, something like a
SpearmanRankCorrelation[] from the MultiVariate Statistics package:
I also have matrix "m" with dimensions {3, 100}
m = RandomReal[{0, 1}, {3, 100}];
Now, say I want to create a correlation matrix using the
SpearmanRankCorrelation function.
I can get the rank correlations between a single vector of the matrix
and all the other vectors like this:
SpearmanRankCorrelation[m[[1]], #] & /@ m
This would give me a single row in a correlation matrix. Pretty
straightforward, but now I want all 3 rows like I would get with this:
{SpearmanRankCorrelation[m[[1]], #] & /@ m,
SpearmanRankCorrelation[m[[2]], #] & /@ m,
SpearmanRankCorrelation[m[[3]], #] & /@ m}
There must be a way I can do this more directly.
I must be missing something simple.
Thanks.