[R] Reshape matrix from wide to long format

Gabor Grothendieck ggrothendieck at gmail.com
Tue Nov 25 14:01:18 CET 2008


Try this:

> as.data.frame.table(m)
   Var1 Var2 Freq
1     A    a    1
2     B    a    2
3     C    a    3
4     D    a    4
5     A    b    5
6     B    b    6
7     C    b    7
8     D    b    8
9     A    c    9
10    B    c   10
11    C    c   11
12    D    c   12
13    A    d   13
14    B    d   14
15    C    d   15
16    D    d   16
17    A    e   17
18    B    e   18
19    C    e   19
20    D    e   20


On Tue, Nov 25, 2008 at 7:19 AM, Daren Tan <daren76 at hotmail.com> wrote:
>
>
> I forgot the reshape equivalent for converting from wide to long format. Can someone help as my matrix is very big. The followin is just an example.
>
>> m <- matrix(1:20, nrow=4, dimnames=list(LETTERS[1:4], letters[1:5]))
>> m
>   a b c d e
>  A 1 5 9 13 17
>  B 2 6 10 14 18
>  C 3 7 11 15 19
>  D 4 8 12 16 20
>
>> as.data.frame(cbind(rep(rownames(m), ncol(m)), rep(colnames(m), each=nrow(m)), c(m)))
>  V1 V2 V3
>  1 A a 1
>  2 B a 2
>  3 C a 3
>  4 D a 4
>  5 A b 5
>  6 B b 6
>  7 C b 7
>  8 D b 8
>  9 A c 9
> 10 B c 10
> 11 C c 11
> 12 D c 12
> 13 A d 13
> 14 B d 14
> 15 C d 15
> 16 D d 16
> 17 A e 17
> 18 B e 18
> 19 C e 19
> 20 D e 20
>
> ______________________________________________
> R-help at 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.
>



More information about the R-help mailing list