On Sun, Apr 1, 2012 at 9:16 AM, Till Bayer <till.ba...@kaust.edu.sa> 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/ ______________________________________________ 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.