[R] Create pairwise table from columns?

hadley wickham h.wickham at gmail.com
Sat May 10 14:53:20 CEST 2008


On Fri, May 9, 2008 at 7:17 PM, knussear <knussear at mac.com> wrote:
>
> Hi Group
>
> I have a large data set of individual pairwise values (250,000 rows) that I
> need to reshape into a pairwise matrix for mantel tests of these values
> versus genetic distances.
>
> the data are currently in columns formatted like so
> AnimalA, AnimalB, Score
> A1, A2, S1
> A1, A3, S2
> A1, A4, S3
> A2, A3, S4
> A2, A4, S5
> A3, A4, S6
> ...,....,....
>
>
> I need the final matrix to be formatted as
>     A1    A2    A3    A4
> A1  0     S1    S2    S3
> A2  S1    0     S4    S5
> A3  S2    S4   0      S6
> A4  S3    S4   S6     0

One approach would be to use the reshape package (http://had.co.nz/reshape) -

dfm <- melt(mydf, id = c("AnimalA", "AnimalB"))
cast(dfm, AnimalA ~ AnimalB)

Hadley

-- 
http://had.co.nz/



More information about the R-help mailing list