On Sun, Apr 1, 2012 at 9:16 AM, Till Bayer <[email protected]> wrote:
> Hi all!
>
> I want to generate a heat map from an all-vs-all comparison. I have the
> data, already scaled to 0-1. However, I have the values only for the
> comparisons in one way, and not for the comparisons between the same group
> (which are always 1), i.e. I have half the matrix and am missing the other
> half and the diagonal.
> What is a good way to get it into a form that ggplot2 can use for the heat
> map?
>
> This is an example of the data I have:
>
> A B value
> T1 T2 0.347
> T1 T3 0.669
> T2 T3 0.214
>
> I assume the following is what I need for ggplot (or maybe I don't, if
> ggplot can somehow generate it?):
>
> A B value
> T1 T2 0.347
> T1 T3 0.669
> T2 T3 0.214
> T2 T1 0.347
> T3 T1 0.669
> T3 T2 0.214
> T1 T1 1
> T2 T2 1
> T3 T3 1
You can usually do something like:
df <- data.frame(A = 1:2, B = 3:4, value = runif(2))
all <- expand.grid(unique(df[c("A", "B")]))
merge(all, df, all = T)
Hadley
--
Assistant Professor / Dobelman Family Junior Chair
Department of Statistics / Rice University
http://had.co.nz/
______________________________________________
[email protected] 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.