How to reshape this data frame from long to wide ?
G'day Darren, On Sun, 22 Feb 2009 11:23:27 +0800
Daren Tan <darentan76 at gmail.com> wrote:
I tried cast and melt in reshape package, but still can't convert
this data frame m
m
[,1] [,2]
[1,] "A" "1"
[2,] "A" "2"
[3,] "B" "3"
from the output, this does not look like a data frame to me but like a matrix.
to this form.
m1
[,1] [,2]
[1,] "A" "B"
[2,] "1" "3"
[3,] "2" NA
I don't think that this result can be achieved. "A" and "B" would
become the column names in the newly created data frame but not be
entries in the data frame themselves.
I presume you are looking for something like:
R> m <- data.frame(var=c("A", "A", "B"), value=c("1", "2", "3"))
R> m
var value
1 A 1
2 A 2
3 B 3
R> m$id <- c(1,2,1)
R> m
var value id
1 A 1 1
2 A 2 2
3 B 3 1
R> library(reshape)
R> ( res <- cast(m, id~...) )
id A B
1 1 1 3
2 2 2 <NA>
R> res[, !(names(res) %in% "id")]
A B
1 1 3
2 2 <NA>
HTH.
Cheers,
Berwin
=========================== Full address =============================
Berwin A Turlach Tel.: +65 6516 4416 (secr)
Dept of Statistics and Applied Probability +65 6516 6650 (self)
Faculty of Science FAX : +65 6872 3919
National University of Singapore
6 Science Drive 2, Blk S16, Level 7 e-mail: statba at nus.edu.sg
Singapore 117546 http://www.stat.nus.edu.sg/~statba