Breaking up a Row in R (transpose)
Hello, marc212 wrote
I have the following:
Time A1 A1 B1 B1 C1 C2
x y x y x y
0 5 6 6 7 7 9
1 3 4 4 3 9 9
2 5 2 6 4 7 4
I want to change it to the following:
0 1 2
x y x y x y
A1 5 6 3 4 5 2
B1 6 7 4 3 6 4
etc for a much larger set
I am sure there are ways to accomplish through a lot of for loops but I
feel there is most likely a function to use.
Thank you.
Using Petr's Orig data.frame above, maybe this is what you want.
cnames <- unique(colnames(Orig))
nc <- ncol(Orig)/length(cnames)
res <- lapply(seq.int(nrow(Orig)), function(i){
x <- Orig[i, ]
dim(x) <- c(length(cnames), nc)
dimnames(x) <- list(cnames, LETTERS[seq_len(nc)])
t(x)
})
names(res) <- rownames(Orig)
res
do.call(cbind, res)
And it avoids loops.
Hope this helps,
Rui Barradas
--
View this message in context: http://r.789695.n4.nabble.com/Breaking-up-a-Row-in-R-transpose-tp4607658p4609488.html
Sent from the R help mailing list archive at Nabble.com.