Re: [R] Transform data for repeated measures

2009-08-28 Thread David Winsemius

Patrick;

You got two helpful suggestions for where to start your learning how  
to reshape your data. I am going to admit that I have recurring  
difficulty using either reshape() or the functions in the reshape  
package. It undoubtedly reflects some sort of constricted abstraction  
capability on my part, but I have learned that sometimes I get what I  
need from a combination of rep() and the stack() function. The  
strategy is to rep() the recurring variables and stack() the repeated  
measures on the same subjects


 resp.df - read.table(textConnection(patient basefev1 fev11h fev12h  
fev13h fev14h fev15h fev16h fev17h fev18h drug
 201 2.46   2.68   2.76   2.50   2.30   2.14   2.40   2.33
2.20a
 202 3.50   3.95   3.65   2.93   2.53   3.04   3.37   3.14
2.62a
 203 1.96   2.28   2.34   2.29   2.43   2.06   2.18   2.28
2.29a
 204 3.44   4.08   3.87   3.79   3.30   3.80   3.24   2.98
2.91a), header=TRUE)

closeAllConnections()

 stk.resp - data.frame(pt.id.=rep(resp.df$patient, 9), FEV1  
=stack(resp.df[,2:10]), drug=rep(resp.df$drug, 9))


 stk.resp

   pt.id. FEV1.values FEV1.ind drug
1 2012.46 basefev1a
2 2023.50 basefev1a
3 2031.96 basefev1a
4 2043.44 basefev1a
5 2012.68   fev11ha
6 2023.95   fev11ha
7 2032.28   fev11ha
8 2044.08   fev11ha
snipped further unneeded output

HTH;
David.


On Aug 27, 2009, at 7:37 PM, Richardson, Patrick wrote:

I have a dataset that I'm trying to rearrange for a repeated  
measures analysis:


It looks like:

patient basefev1 fev11h fev12h fev13h fev14h fev15h fev16h fev17h  
fev18h drug
201 2.46   2.68   2.76   2.50   2.30   2.14   2.40   2.33
2.20a
202 3.50   3.95   3.65   2.93   2.53   3.04   3.37   3.14
2.62a
203 1.96   2.28   2.34   2.29   2.43   2.06   2.18   2.28
2.29a
204 3.44   4.08   3.87   3.79   3.30   3.80   3.24   2.98
2.91a


And I want to make it look like:

Patient  FEV  time  drug
201 2.460 a
201 2.681 a
201 2.762 a
201 2.503 a

And so on . . . . . There would be 9 time and drug is a factor  
variable.


I know there is a way to do this in R but I cannot remember the  
function. I've looked at the transpose function in (base) but that  
doesn't seem to be what I want. Can something like this be done  
easily from within package functions or would it require writing  
something custom? Another program would use something like the  
transpose procedure, but I'm trying to stay away from that program.


Thanks,

Patrick


David Winsemius, MD
Heritage Laboratories
West Hartford, CT

__
R-help@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.


Re: [R] Transform data for repeated measures

2009-08-28 Thread Henrique Dallazuanna
Using reshape you can try this:

reshape(resp.df, direction = long, idvar=patient, varying =
list(grep(fev, names(resp.df

On Thu, Aug 27, 2009 at 8:37 PM, Richardson, Patrick 
patrick.richard...@vai.org wrote:

 I have a dataset that I'm trying to rearrange for a repeated measures
 analysis:

 It looks like:

 patient basefev1 fev11h fev12h fev13h fev14h fev15h fev16h fev17h fev18h
 drug
 201 2.46   2.68   2.76   2.50   2.30   2.14   2.40   2.33   2.20a
 202 3.50   3.95   3.65   2.93   2.53   3.04   3.37   3.14   2.62a
 203 1.96   2.28   2.34   2.29   2.43   2.06   2.18   2.28   2.29a
 204 3.44   4.08   3.87   3.79   3.30   3.80   3.24   2.98   2.91a

 And I want to make it look like:

 Patient  FEV  time  drug
 201 2.460 a
 201 2.681 a
 201 2.762 a
 201 2.503 a

 And so on . . . . . There would be 9 time and drug is a factor variable.

 I know there is a way to do this in R but I cannot remember the function.
 I've looked at the transpose function in (base) but that doesn't seem to be
 what I want. Can something like this be done easily from within package
 functions or would it require writing something custom? Another program
 would use something like the transpose procedure, but I'm trying to stay
 away from that program.

 Thanks,

 Patrick

 R version 2.9.2 (2009-08-24)
 i386-pc-mingw32

 locale:
 LC_COLLATE=English_United States.1252;LC_CTYPE=English_United
 States.1252;LC_MONETARY=English_United
 States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252

 attached base packages:
 [1] grDevices datasets  tcltk splines   graphics  stats utils
 methods   base

 other attached packages:
 [1] svSocket_0.9-43 svMisc_0.9.48   TinnR_1.0.3 R2HTML_1.59-1
 Hmisc_3.6-1 survival_2.35-4

 loaded via a namespace (and not attached):
 [1] cluster_1.12.0  grid_2.9.2  lattice_0.17-25 tools_2.9.2
 This email message, including any attachments, is for ...{{dropped:20}}

__
R-help@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.


Re: [R] Transform data for repeated measures

2009-08-28 Thread hadley wickham
On Thu, Aug 27, 2009 at 6:37 PM, Richardson,
Patrickpatrick.richard...@vai.org wrote:
 I have a dataset that I'm trying to rearrange for a repeated measures 
 analysis:

 It looks like:

 patient basefev1 fev11h fev12h fev13h fev14h fev15h fev16h fev17h fev18h drug
 201     2.46   2.68   2.76   2.50   2.30   2.14   2.40   2.33   2.20    a
 202     3.50   3.95   3.65   2.93   2.53   3.04   3.37   3.14   2.62    a
 203     1.96   2.28   2.34   2.29   2.43   2.06   2.18   2.28   2.29    a
 204     3.44   4.08   3.87   3.79   3.30   3.80   3.24   2.98   2.91    a

 And I want to make it look like:

 Patient  FEV  time  drug
 201         2.46    0         a
 201         2.68    1         a
 201         2.76    2         a
 201         2.50    3         a

 And so on . . . . . There would be 9 time and drug is a factor variable.

 I know there is a way to do this in R but I cannot remember the function. 
 I've looked at the transpose function in (base) but that doesn't seem to be 
 what I want. Can something like this be done easily from within package 
 functions or would it require writing something custom? Another program would 
 use something like the transpose procedure, but I'm trying to stay away from 
 that program.

To give a concrete example of what using the reshape package would
look like: (thanks to David for making your example easily
reproducible)

 resp.df - read.table(textConnection(patient basefev1 fev11h fev12h
fev13h fev14h fev15h fev16h fev17h fev18h drug

 201 2.46   2.68   2.76   2.50   2.30   2.14   2.40   2.33   2.20a
 202 3.50   3.95   3.65   2.93   2.53   3.04   3.37   3.14   2.62a
 203 1.96   2.28   2.34   2.29   2.43   2.06   2.18   2.28   2.29a
 204 3.44   4.08   3.87   3.79   3.30   3.80   3.24   2.98   2.91
  a), header=TRUE)
closeAllConnections()

library(reshape)
# Identify the variables controlled by your experimental design:
stk.resp - melt(resp.df, id = c(patient, drug))
stk.resp$time - as.numeric(gsub([^0-9], , stk.resp$variable))

Hadley

-- 
http://had.co.nz/

__
R-help@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.


Re: [R] Transform data for repeated measures

2009-08-27 Thread Rolf Turner


?reshape

On 28/08/2009, at 11:37 AM, Richardson, Patrick wrote:

I have a dataset that I'm trying to rearrange for a repeated  
measures analysis:


It looks like:

patient basefev1 fev11h fev12h fev13h fev14h fev15h fev16h fev17h  
fev18h drug
201 2.46   2.68   2.76   2.50   2.30   2.14   2.40   2.33
2.20a
202 3.50   3.95   3.65   2.93   2.53   3.04   3.37   3.14
2.62a
203 1.96   2.28   2.34   2.29   2.43   2.06   2.18   2.28
2.29a
204 3.44   4.08   3.87   3.79   3.30   3.80   3.24   2.98
2.91a


And I want to make it look like:

Patient  FEV  time  drug
201 2.460 a
201 2.681 a
201 2.762 a
201 2.503 a

And so on . . . . . There would be 9 time and drug is a factor  
variable.


I know there is a way to do this in R but I cannot remember the  
function. I've looked at the transpose function in (base) but that  
doesn't seem to be what I want. Can something like this be done  
easily from within package functions or would it require writing  
something custom? Another program would use something like the  
transpose procedure, but I'm trying to stay away from that program.


Thanks,

Patrick


##
Attention:\ This e-mail message is privileged and confid...{{dropped:9}}

__
R-help@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.


Re: [R] Transform data for repeated measures

2009-08-27 Thread Bert Gunter
I suspect reshape() is the function you're looking for; there is also a
reshape package that you might prefer.

It's also quite easy to do this in base R using unlist() and some indexing
with rep, but that may be more than you care to deal with.

Bert Gunter
Genentech Nonclinical Biostatisics

-Original Message-
From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On
Behalf Of Richardson, Patrick
Sent: Thursday, August 27, 2009 4:37 PM
To: r help
Subject: [R] Transform data for repeated measures

I have a dataset that I'm trying to rearrange for a repeated measures
analysis:

It looks like:

patient basefev1 fev11h fev12h fev13h fev14h fev15h fev16h fev17h fev18h
drug
201 2.46   2.68   2.76   2.50   2.30   2.14   2.40   2.33   2.20a
202 3.50   3.95   3.65   2.93   2.53   3.04   3.37   3.14   2.62a
203 1.96   2.28   2.34   2.29   2.43   2.06   2.18   2.28   2.29a
204 3.44   4.08   3.87   3.79   3.30   3.80   3.24   2.98   2.91a

And I want to make it look like:

Patient  FEV  time  drug
201 2.460 a
201 2.681 a
201 2.762 a
201 2.503 a

And so on . . . . . There would be 9 time and drug is a factor variable. 

I know there is a way to do this in R but I cannot remember the function.
I've looked at the transpose function in (base) but that doesn't seem to be
what I want. Can something like this be done easily from within package
functions or would it require writing something custom? Another program
would use something like the transpose procedure, but I'm trying to stay
away from that program.

Thanks,

Patrick

R version 2.9.2 (2009-08-24) 
i386-pc-mingw32 

locale:
LC_COLLATE=English_United States.1252;LC_CTYPE=English_United
States.1252;LC_MONETARY=English_United
States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252

attached base packages:
[1] grDevices datasets  tcltk splines   graphics  stats utils
methods   base 

other attached packages:
[1] svSocket_0.9-43 svMisc_0.9.48   TinnR_1.0.3 R2HTML_1.59-1
Hmisc_3.6-1 survival_2.35-4

loaded via a namespace (and not attached):
[1] cluster_1.12.0  grid_2.9.2  lattice_0.17-25 tools_2.9.2
This email message, including any attachments, is for th...{{dropped:8}}

__
R-help@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.