On 9/20/05, Bing Ho <[EMAIL PROTECTED]> wrote:
> Hello,
> 
> I am very new to R, but I am having trouble with my dataset.
> 
> I have a data frame where a subject has a variable number of multiple
> observations for each row, which I wish the transform these
> observations to column variables.
> 
> An example of the data frame
> ID      TEST.A  TEST.B
> 1       10      1
> 1       13      2
> 1       11      1
> 2       15      2
> 2       17      3
> 
> And I wish to transform it to the following:
> ID      TEST.A1 TEST.A2 TEST.A3 TEST.B1 TEST.B2 TEST.B3
> 1       10              13              11              1               2     
>           1
> 2       15              17              NA              2               3     
>           NA
> 
> In other words, for the variable number of repeated follow up
> studies, a new column variable for each subject, but they are grouped
> by the original test.


First manufacture a "time" column and then use reshape:

tt <- sequence(rle(DF$ID)$lengths)
reshape(cbind(tt, DF), idvar = "ID", timevar = "tt", direction = "wide")

Another possibility is to use the reshape package:

library(reshape)
DF.d <- deshape(cbind(tt, DF), id = 1:2)  # same tt as above
reshape(DF.d, ID ~ variable + tt)

______________________________________________
R-help@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

Reply via email to