Hi, arun I'm so sorry for that isn't helpful. One of question is that I don't know how to subset a small part as it is a 3-dimension array so I just show the structure of that. I tried dput() to a file , then what should I do for subsetting it?
Another question is : My rawdata is a "melt" dataframe like that: IID O2 variable value 1 TWF2H5 13% EW.INCU 49.38 2 TWF2H6 13% EW.INCU 48.02 3 TWF2H19 13% EW.INCU 51.44 280 TWF2H101 13% EW.17.5 42.26 281 TWF2H105 13% EW.17.5 43.52 282 TWF2H106 13% EW.17.5 42.83 472 TWF2N102 21% EW.17.5 45.97 473 TWF2N104 21% EW.17.5 43.32 474 TWF2N106 21% EW.17.5 48.63 689 TWF2N2 21% EMW 19.57 690 TWF2N6 21% EMW 18.07 691 TWF2N10 21% EMW 15.4 491 TWF2H5 13% EMW 15.61 492 TWF2H6 13% EMW 13.41 493 TWF2H19 13% EMW 14.03 199 TWF2N2 21% EW.INCU 48.69 200 TWF2N6 21% EW.INCU 50.52 201 TWF2N10 21% EW.INCU 42.04 if you meet a t-test task as I described , is that generate a high-dimension array a good way ? Thank you! Yao He 2013/1/7 arun <smartpink...@yahoo.com>: > HI, > I tried to create an example dataset (as you didn't provide the data). > set.seed(25) > a<-array(sample(1:50,60,replace=TRUE),dim=c(2,10,3)) > dimnames(a)[[1]]<-c("13%","21%") > dimnames(a)[[2]]<-paste("TWF2H",101:110,sep="") > dimnames(a)[[3]]<-c("EW.INCU","EW.17.5","EMW") > > > str(a) > # int [1:2, 1:10, 1:3] 21 35 8 45 7 50 32 17 4 15 ... > #- attr(*, "dimnames")=List of 3 > #..$ : chr [1:2] "13%" "21%" > .#.$ : chr [1:10] "TWF2H101" "TWF2H102" "TWF2H103" "TWF2H104" ... > #..$ : chr [1:3] "EW.INCU" "EW.17.5" "EMW" > > res<-lapply(lapply(seq_len(dim(a)[3]),function(i) > t.test(a[dimnames(a)[[1]][1],,i],a[dimnames(a)[[1]][2],,i])),function(x) > data.frame(mean=x$estimate,p.value=x$p.value)) > res1<-do.call(rbind,res) > row.names(res1)[grep("mean of > x",row.names(res1))]<-gsub("(.*\\.).*$","\\113%",row.names(res1)[grep("mean > of x",row.names(res1))]) > row.names(res1)[grep("mean of > y",row.names(res1))]<-gsub("(.*\\.).*$","\\121%",row.names(res1)[grep("mean > of y",row.names(res1))]) > res1 > # mean p.value > #EW.INCU.13% 22.3 0.2754842 > #EW.INCU.21% 29.3 0.2754842 > #EW.17.5.13% 20.5 0.4705772 > #EW.17.5.21% 16.0 0.4705772 > #EMW.13% 23.9 0.9638679 > #EMW.21% 24.2 0.9638679 > A.K. > > > > > ----- Original Message ----- > From: Yao He <yao.h.1...@gmail.com> > To: arun <smartpink...@yahoo.com> > Cc: R help <r-help@r-project.org> > Sent: Sunday, January 6, 2013 11:21 PM > Subject: Re: [R] how to aggregate T-test result in an elegant way? > > Thank you,it is really helpful everytime. > > I didn't provide any example data because I thought it is just a > question of how to report t.test() result in R. > However,as you say,it is better to show more details for finding an elegant > way > > In fact I generate a 3-dimension array like that: > str(a) > num [1:2, 1:245, 1:3] 47.5 NA 48.9 NA 47.5 ... > - attr(*, "dimnames")=List of 3 > ..$ : chr [1:2] "13%" "21%" > ..$ : chr [1:245] "TWF2H101" "TWF2H105" "TWF2H106" "TWF2H110" ... > ..$ : chr [1:3] "EW.INCU" "EW.17.5" "EMW" > > I want to do two sample mean t-test between 13% and 21% for each > variable "EW.INCU" "EW.17.5" "EMW". > > So I try these codes: > variable<-dimnames(a)[[3]] > O2<-dimnames(a)[[1]] > for (i in variable) { > print(i) > print(O2[1]) > print(O2[2]) > print(t.test(a[O2[1],,i],a[O2[2],,i],na.rm=T)) > } > > I don't think it is an elegant way and I am inexperience to report raw result. > Could you give me more help? > > Yao He > > 2013/1/7 arun <smartpink...@yahoo.com>: >> Hi, >> You didn't provide any example data. So, I am not sure whether this helps. >> >> set.seed(15) >> dat1<-data.frame(A=sample(10:20,5,replace=TRUE),B=sample(18:28,5,replace=TRUE),C=sample(25:35,5,replace=TRUE),D=sample(20:30,5,replace=TRUE)) >> res<-lapply(lapply(seq_len(ncol(dat2)),function(i) >> t.test(dat2[,i],dat1[,1],paired=TRUE)),function(x) >> data.frame(meanDiff=x$estimate,p.value=x$p.value))# paired >> names(res)<-paste("A",LETTERS[2:4],sep="") >> res<- do.call(rbind,res) >> res >> # meanDiff p.value >> #AB 9.4 0.021389577 >> #AC 15.0 0.002570261 >> #AD 10.6 0.003971604 >> >> >> #or >> res1<-lapply(lapply(seq_len(ncol(dat2)),function(i) >> t.test(dat2[,i],dat1[,1],paired=FALSE)),function(x) >> data.frame(mean=x$estimate,p.value=x$p.value)) >> names(res1)<-paste("A",LETTERS[2:4],sep="") >> res1<-do.call(rbind,res1) >> row.names(res1)[grep("mean of >> y",row.names(res1))]<-gsub("(.*\\.).*","\\1A",row.names(res1)[grep("mean of >> y",row.names(res1))]) >> row.names(res1)[grep("mean of >> x",row.names(res1))]<-gsub("(\\w)(\\w)(\\.).*","\\1\\2\\3\\2",row.names(res1)[grep("mean >> of x",row.names(res1))]) >> res1 >> # mean p.value >> #AB.B 25.2 1.299192e-03 >> #AB.A 15.8 1.299192e-03 >> #AC.C 30.8 5.145519e-05 >> #AC.A 15.8 5.145519e-05 >> #AD.D 26.4 1.381339e-03 >> #AD.A 15.8 1.381339e-03 >> >> >> A.K. >> >> >> >> ----- Original Message ----- >> From: Yao He <yao.h.1...@gmail.com> >> To: r-help@r-project.org >> Cc: >> Sent: Sunday, January 6, 2013 10:20 PM >> Subject: [R] how to aggregate T-test result in an elegant way? >> >> Dear all: >> >> Plan 1: >> I want to do serval t-test means for different variables in a loop , >> so I want to add all results to an object then dump() them to an >> text. But I don't know how to append T-test result to the object? >> >> I have already plot the barplot and I want to know an elegant way to >> report raw result. >> Can anybody give me some pieces of advice? >> >> Yao He >> ――――――――――――――――――――――――― >> Master candidate in 2rd year >> Department of Animal genetics & breeding >> Room 436,College of Animial Science&Technology, >> China Agriculture University,Beijing,100193 >> E-mail: yao.h.1...@gmail.com >> ―――――――――――――――――――――――――― >> >> ______________________________________________ >> 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. >> > > > > -- > ――――――――――――――――――――――――― > Master candidate in 2rd year > Department of Animal genetics & breeding > Room 436,College of Animial Science&Technology, > China Agriculture University,Beijing,100193 > E-mail: yao.h.1...@gmail.com > ―――――――――――――――――――――――――― > -- ――――――――――――――――――――――――― Master candidate in 2rd year Department of Animal genetics & breeding Room 436,College of Animial Science&Technology, China Agriculture University,Beijing,100193 E-mail: yao.h.1...@gmail.com ―――――――――――――――――――――――――― ______________________________________________ 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.