Frank Duan
2004-Nov-28  23:13 UTC
[R] Could anyone help me reshape this "wide" data into "longitudinal" one? Thanks
Dear R people,
I have a matrix like this:
      var1   var2    var3    var4 
a1   7.1   7.2       8.1    8.2 
a2  10.5  10.6    ...       ...
a3
b1
b2
b3
b4
c1
c2
...
The matrix row names are "a1", "a2", ......  and the matrix
column
names are "var1", "var2", "var3" and
"var4". Now I want to reshape
this data into a longitudinal-formatted one like this:
subject    seq   time    resp        
a              1      1        7.1
a              1      2        7.2
a              1      3        8.1
a              1      4        8.2
a              2      1       10.5 
a              2      2       10.6
a              2      3         ...
a              2      4         ...
a              3      1         ...
a              3      2
a              3      3
a              3      4
b              1      1
b              1      2
b              1      3
b              1      4
b              2      1
b              2      2
b              2      3
b              2      4
...             ...    ...
...             ...    ...
...             ...    ...
I always met errors when using "reshape" function. Could anyone give
me an idea how to do it?
Many thanks to you,
Frank
Robert W. Baer, Ph.D.
2004-Nov-29  01:19 UTC
[R] Could anyone help me reshape this "wide" data into"longitudinal" one? Thanks
This might get you started:
# make data in original format
a=matrix(1:48,12,4)
colnames(a)<-c('var1','var2','var3','var4')
rownames(a)<-c('a1','a2','a3','b1','b2','b3','c1','c2','c3','d1','d2','d3')
a
#rehape the data
a=data.frame(a)
reshape(a[1:4],idvar="row",
timevar="column",varying=list(names(a[1:4])),direction="long")
Rob
----- Original Message ----- 
From: "Frank Duan" <fhduan at gmail.com>
To: <r-help at stat.math.ethz.ch>
Sent: Sunday, November 28, 2004 5:13 PM
Subject: [R] Could anyone help me reshape this "wide" data
into"longitudinal" one? Thanks
> Dear R people,
>
> I have a matrix like this:
>
>       var1   var2    var3    var4
> a1   7.1   7.2       8.1    8.2
> a2  10.5  10.6    ...       ...
> a3
> b1
> b2
> b3
> b4
> c1
> c2
> ...
>
> The matrix row names are "a1", "a2", ......  and the
matrix column
> names are "var1", "var2", "var3" and
"var4". Now I want to reshape
> this data into a longitudinal-formatted one like this:
>
>
> subject    seq   time    resp
> a              1      1        7.1
> a              1      2        7.2
> a              1      3        8.1
> a              1      4        8.2
> a              2      1       10.5
> a              2      2       10.6
> a              2      3         ...
> a              2      4         ...
> a              3      1         ...
> a              3      2
> a              3      3
> a              3      4
> b              1      1
> b              1      2
> b              1      3
> b              1      4
> b              2      1
> b              2      2
> b              2      3
> b              2      4
> ...             ...    ...
> ...             ...    ...
> ...             ...    ...
>
>
> I always met errors when using "reshape" function. Could anyone
give
> me an idea how to do it?
>
> Many thanks to you,
>
> Frank
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html>