Search code examples
rreshapereshape2

Reshaping a data.frame


I have the following table

structure(list(Compound = structure(c(1L, 2L, 3L, 1L, 1L, 3L), .Label = c("Nap", 
"Phe", "tre"), class = "factor"), Area = c(17197669L, 19464754L, 
35792660L, 10097291L, 348395L, 2576352L), Samples = structure(c(1L, 
1L, 1L, 2L, 3L, 2L), .Label = c("a1", "a2", "a3"), class = "factor")), .Names = c("Compound", 
"Area", "Samples"), class = "data.frame", row.names = c(NA, -6L
))

which I want to reorder as this

structure(list(Compound = structure(1:3, .Label = c("Nap", "Phe", 
"tre"), class = "factor"), a1 = c(17197669L, 19464754L, 35792660L
), a2 = c(10097291L, 0L, 2576352L), a3 = c(348395L, 0L, 0L)), .Names = c("Compound", 
"a1", "a2", "a3"), class = "data.frame", row.names = c(NA, -3L
))

any suggestion? I have no idea how to start.


Solution

  • If data is your first table, you can start with this:

    reshape(data,idvar="Compound",timevar="Samples",direction="wide")
    

    See ?reshape for details.