[R] Write function multiple tests and write summary table

ctu at bigred.unl.edu ctu at bigred.unl.edu
Tue May 27 12:39:56 CEST 2008


Hi Fabio,
Before using R, there is one thing you need to know "Don't use letter  
c to assign a name. I use f instead of your letter c for third dataset.
This is my code (For better result, I use lm to replace aov)

DS<-matrix(data=c(a<-c(1,3,2,6,9,2,2,3,4,1),b<-c(2,3,3,4,5,6,2,1,1,6),f<-c(0,2,4,4,7,6,7,1,2,2),d<-c(0,0,0,1,0,2,1,3,1,2),e<-c(9,2,3,1,1,1,0,2,5,6)),
           nrow=10,ncol=5)

group<-c("case", "case", "case", "case", "case", "control", "control",  
"control", "control", "control")
group<-factor(group)
est<-matrix(data=NA,nrow=2,ncol=5,  
dimnames=list(estimate=c("intercept","factor"),dataset=c("a","b","f","d","e")))
SE<-matrix(data=NA,nrow=2,ncol=5,dimnames=list(STD=c("intercept","factor"),dataset=c("a","b","f","d","e")))
t.stat<-matrix(data=NA,nrow=2,ncol=5,dimnames=list(T.stat=c("intercept","factor"),dataset=c("a","b","f","d","e")))
p.value<-matrix(data=NA,nrow=2,ncol=5,dimnames=list(p.vale=c("intercept","factor"),dataset=c("a","b","f","d","e")))
for(i in 1:5)
             {
      results<-lm(DS[,i]~group)
      est[,i]<-summary(results)$coefficient[,1]
      SE[,i]<-summary(results)$coefficient[,2]
      t.stat[,i]<-summary(results)$coefficient[,3]
      p.value[,i]<-summary(results)$coefficient[,4]

      }
  Data.a<-matrix(data=c(est[,1],SE[,1],t.stat[,1],p.value[,1]),nrow=2,ncol=4)
  Data.b<-matrix(data=c(est[,2],SE[,2],t.stat[,2],p.value[,2]),nrow=2,ncol=4)
  Data.f<-matrix(data=c(est[,3],SE[,3],t.stat[,3],p.value[,3]),nrow=2,ncol=4)
  Data.d<-matrix(data=c(est[,4],SE[,4],t.stat[,4],p.value[,4]),nrow=2,ncol=4)
  Data.e<-matrix(data=c(est[,5],SE[,5],t.stat[,5],p.value[,5]),nrow=2,ncol=4)
  summary.table<-rbind(Data.a,Data.b,Data.f,Data.d,Data.e)
   
Summary.Table<-matrix(data=summary.table,nrow=10,ncol=4,dimnames=list(DATA=c("intercept.a","factor.a","intercept.b","factor.b",
                                      
"intercept.f","factor.f","intercept.d","factor.d",
                                      
"intercept.e","factor.e"),TEST=c("Estimate","S.E","t.stat","p.value")))
  Summary.Table


This is what you need~
Chunhao Tu





Quoting Fabio Sanchez <Fabio.Sanchez at ki.se>:

> Dear R community,
>
> I am not experienced in writing functions and need your help to understand
> the strategy to face the following problem:
>
> I have a group of independent numerical variables, let's say
>
> a<-c(1,3,2,6,9,2,2,3,4,1)
> b<-c(2,3,3,4,5,6,2,1,1,6)
> c<-c(0,2,4,4,7,6,7,1,2,2)
> d<-c(0,0,0,1,0,2,1,3,1,2)
> e<-c(9,2,3,1,1,1,0,2,5,6)
>
> and a grouping variable,
>
> group<-c("case","case","case",","case",","case","control","control","control","control","control")
>
> I want to apply a test for every variable independently and store the
> summary result in a table
>
> for example
>
> mod1<-aov(a~group)
> mod2<-aov(b~group)
> .
> .
> .
>  generate summary table
>
>
> Any suggestions?
>
> Thank you
>
> Fabio
>
>
>
> --
> Fabio Sánchez, MD, MSc, PhD
> Unit of Dermatology and Venereology
> Department of Medicine
> Karolinska Institute
> SE-17176 Karolinska University Hospital
> Phone: +46 8 51772158
> Fax: +46 8 51773620
>
> 	[[alternative HTML version deleted]]
>
>



More information about the R-help mailing list