Re: [R] help about 2 way anova and tukey test

From: Gabor Grothendieck <ggrothendieck_at_gmail.com>
Date: Thu, 24 May 2007 09:48:07 -0400

The form of your data is termed "wide" and you want to reshape it to "long" form and use aov with that. This uses the reshape command to produce the long form. Alternately you could use cast and melt in the reshape package to do that:

# read data

Lines <- "subj    therapy t0      t1      t2
1       a       80.5    82.2    54.23
2       a       84.9    85.6    56.83
3       a       81.5    81.4    54.30
1       b       83.8    95.2    59.67
2       b       83.3    94.3    59.20
3       b       86      91.5    59.17
1       c       80.7    80.2    53.63
2       c       89.4    80.1    56.50
3       c       91.8    86.4    59.40

"
DF <- read.table(textConnection(Lines), header = TRUE)

# reshape to long form
nm <- names(DF)[3:5]
long <- reshape(DF, dir = "long", varying = list(nm), times = nm,   v.names = "value")
long$time <- factor(long$time)

# calculate
aov(value ~ therapy * time, data = long)

# ...etc

On 5/24/07, Sarti Maurizio <sarti.m_at_irea.cnr.it> wrote:
> Dears members of R list,
> I have a technical question about conducting 2 way analysis of the variance
> (ANOVA) for repeated measures followed tukey test using R.
> my data are:
> There were 3 subj in all and 3 repeated measures for every time and therapy
> therapy = a,b,c
> time = t1,t2,t3
> subj = 1,2,3
>
> subj therapy t0 t1 t2
> 1 a 80.5 82.2 54.23
> 2 a 84.9 85.6 56.83
> 3 a 81.5 81.4 54.30
> 1 b 83.8 95.2 59.67
> 2 b 83.3 94.3 59.20
> 3 b 86 91.5 59.17
> 1 c 80.7 80.2 53.63
> 2 c 89.4 80.1 56.50
> 3 c 91.8 86.4 59.40
>
> the code that I use is:
>
> rm(list=ls(all=TRUE))
> dati<- read.table("dati.txt", T)
> attach(dati)
> subj<- c( 1: 9, 1: 9,1:9)
> therapy<- factor( c( rep(" a", 3), rep(" b", 3), rep(" c", 3),
> rep(" a", 3), rep(" b", 3), rep(" c", 3),
> rep(" a",3), rep(" b", 3), rep(" c", 3)))
>
> time<- factor( c( rep(" t0", 9), rep(" t1", 9),rep(" t2", 9)))
> weight<- c( t0,t1,t2)
>
> time <- factor( time)
> therapy <- factor( therapy)
> subj <- factor( subj)
> summary( fm1<-aov( weight~time*therapy))
> fm1Tukey=TukeyHSD(fm1,"therapy",ordered = TRUE) ; fm1Tukey
> fm1Tukey=TukeyHSD(fm1,"time",ordered = TRUE) ; fm1Tukey
> fm1Tukey=TukeyHSD(fm1,"time:therapy",ordered = TRUE) ; fm1Tukey
>
> My question is - is that the correct way to do it??
> Very much obliged for your kind response
> Maurizio
>
> ******************************************************************************
> Maurizio Sarti, PhD
> IREA - CNR
> via Diocleziano,328 I-80124 Napoli (Italy)
> tel:+39-(0)81-5707999-(0)81-5704945 fax:+39-(0)81-5705734
> cell:+39-3204397891
> ******************************************************************************
> e-mail: sarti.m@irea.cnr.it website: http://www.irea.cnr.it
>
> ______________________________________________
> 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
> and provide commented, minimal, self-contained, reproducible code.
>



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 and provide commented, minimal, self-contained, reproducible code. Received on Thu 24 May 2007 - 13:56:31 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 24 May 2007 - 14:31:01 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.