Try this:

x$zMean <- ave(x$z,
                           apply(x[,1:2], 1, function(x)paste(sort(x),
collapse = "")),
                           FUN = mean)

xtabs(zMean ~ x + y, data = x)


On Wed, Dec 10, 2008 at 11:16 AM, William Simpson <
william.a.simpson@gmail.com> wrote:

> On re-reading ?cmdscale I see that I can also use cmdscale(d) on a
> full matrix rather than just the lower triangle.
>  d: a distance structure such as that returned by 'dist' or a
>          full symmetric matrix containing the dissimilarities.
>
> So how to get a full symmetric matrix from a dataframe like this (toy
> example)?
>  x       y       z
>  "a"     "a"     0
>  "a"     "b"     1
>  "a"     "c"     2
>  "b"     "a"     .9
>  "b"     "b"     0
>  "b"     "c"     1.3
>  "c"     "a"     2.2
>  "c"     "b"     1.1
>  "c"     "c"     0
>
> Replacing the corresponding cells in the matrix by their means, I need
> this:
>
>  c 2.10 1.20 0.00
>  b 0.95 0.00 1.20
>  a 0.00 0.95 2.10
>  a    b    c
>
> E.g. in the original data, the cell (a,b) = 1; (b, a) =0.9. In the
> final matrix, (a,b) = (b,a) =0.95
>
>  Thanks very much for any help.
>
> Bill
>
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



-- 
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O

	[[alternative HTML version deleted]]

