Re: Map function with 2 variables

• To: mathgroup at smc.vnet.net
• Subject: [mg114961] Re: Map function with 2 variables
• From: Bill Rowe <readnews at sbcglobal.net>
• Date: Fri, 24 Dec 2010 04:12:28 -0500 (EST)

```On 12/23/10 at 3:56 AM, jagra24891 at mypacks.net (Jagra) 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.

By using Subsets, you can generate pairs of row/column indices.
That is:

In[13]:= Subsets[Range[3], {2}]

Out[13]= {{1, 2}, {1, 3}, {2, 3}}

So, your goal can be achieved as:

SpearmanRankCorrelation@@(m[[#]])&/@Subsets[Range[3],{2}]

```

• Prev by Date: Re: Fixing padding inside Inset
• Next by Date: Re: Map function with 2 variables
• Previous by thread: Re: Map function with 2 variables
• Next by thread: Re: Map function with 2 variables