I deleted the 't' subfolders from the dados folder.
If you don't have 't' folders, wouldn't it be better to use: directory<- "/home/arunksa111/dados" FacGroup<-c(0,1,0,2,2,0,0) #instead of #FacGroup<-c(0,1,0,2,2,0,3) FacGroup<-c(0,1,0,2,2,0,3) lista[FacGroup!=0] #[1] "/home/arunksa111/dados/a2/MSMS_23PepInfo.txt" #[2] "/home/arunksa111/dados/c2/MSMS_23PepInfo.txt" #[3] "/home/arunksa111/dados/c3/MSMS_23PepInfo.txt" #[4] NA FacGroup<-c(0,1,0,2,2,0,0) lista[FacGroup!=0] #[1] "/home/arunksa111/dados/a2/MSMS_23PepInfo.txt" #[2] "/home/arunksa111/dados/c2/MSMS_23PepInfo.txt" #[3] "/home/arunksa111/dados/c3/MSMS_23PepInfo.txt" Couldn't reproduce the error you mentioned. Spec(ListFacGroup,0.05) # Seq Mod z a2 c2 c3 #1 aAAAAAAAAAGAAGGR 1-n_acPro/ 2 1 1 0 #2 AAAAAAAkAAK 8-K_ac/ 2 1 1 0 #3 aAAAAAGAGPEMVR 1-n_acPro/ 2 2 2 1 #4 aAAAAEQQQFYLLLGNLLSPDNVVR 1-n_acPro/ 2 1 1 0 #5 aAAAAEQQQFYLLLGNLLSPDNVVR 1-n_acPro/ 3 2 2 2 #6 AAAAAPGTAEK 2 1 1 0 #7 aAAAAVGNAVPCGAR 1-n_acPro/ 2 1 1 1 _______________________________________________________ ----------------------------------------------------------------------------------------- A.K. ________________________________ From: Vera Costa <veracosta...@gmail.com> To: arun <smartpink...@yahoo.com> Sent: Tuesday, March 19, 2013 10:14 AM Subject: Re: new question Hi again. you sent me a code ( e few time ago) GetFileList <- function(directory,number){ setwd(directory) filelist1<-dir()[file.info(dir())$isdir] direct<-dir(directory,pattern = paste("MSMS_",number,"PepInfo.txt",sep=""), full.names = FALSE, recursive = TRUE) direct<-lapply(direct,function(x) paste(directory,"/",x,sep="")) lista<-unlist(direct) output<- list(filelist1,lista) return(output) } ReadDir<-function(FacGroup){ list.new<-lista[FacGroup!=0] read.list<-lapply(list.new, function(x) read.table(x,header=TRUE, sep = "\t")) names(read.list)<-file.list.names[FacGroup!=0] return (read.list) } directory<-"C:/Users/Vera Costa/Desktop/dados.lixo" file.list.names<-GetFileList(directory,23) [[1]] lista<-GetFileList(directory,23) [[2]] FacGroup<-c(0,1,0,2,2,0,3) #FacGroup<-c(0,1,1,1,0,2,2,2) ListFacGroup<-ReadDir(FacGroup) #zPValues(ListFacGroup,FacGroup) Spec <- function(lista,FDR_k) { list.new<-lapply(lista,function(x) within(x,{spec<- as.character(spec)})) split.list<-split(list.new,names(lista)) #Data needed with FDR<FDR_k seq.mod.z<-lapply(seq_along(split.list),function(i) lapply(split.list[[i]],function(x) x[x[["FDR"]]<FDR_k,c("Seq","Mod","z","spec")])) names(seq.mod.z)<- names(split.list) #insert colunm with the name of the folder folder.name<-lapply(seq.mod.z,function(x) lapply(names(x),function(i) do.call(rbind,lapply(x[i],function(x) cbind(folder_name=i,x))))) #merge data with the same Seq, Mod and z library(plyr) library(data.table) merge.data<- lapply(folder.name,function(x) lapply(x,function(x1) {x1<-data.table(x1); x1[,spec:=paste(spec,collapse=","),by=c("Seq","Mod","z")]})) #colunm with number of spec count.spec<-lapply(merge.data,function(x) lapply(x,function(x1) {x1$counts<-sapply(x1$spec, function(x2) length(gsub("\\s", "", unlist(strsplit(x2, ",")))));x3<-as.data.frame(x1);names(x3)[6]<- as.character(unique(x3$folder_name));x3[,-c(1,5)]})) #count spec by group (2-columns) spec.group<-lapply(count.spec,function(x) Reduce(function(...) merge(...,by=c("Seq","Mod","z"),all=TRUE),x)) #spec.group1<-spec.group[lapply(spec.group,length)!=0] #data frame with count of spec res<- Reduce(function(...) merge(...,by=c("Seq","Mod","z"),all=TRUE),spec.group) res[is.na(res)] <- 0 print(res) resNew<-do.call(cbind,lapply(split(names(res)[4:ncol(res)],gsub("[0-9]","",names(res)[4:ncol(res)])), function(i) {x<-if(ncol(res[i])>1) rowSums(res[i]) else res[i]; colnames(x)<-NULL;x})) print(head(resNew),10) print("vera") print(names(resNew)) indx<-combn(names(resNew),2) t.test.p.value <- function(...) { obj<-try(t.test(...), silent=TRUE) if (is(obj, "try-error")) return(NA) else return(obj$p.value) } resPval<-do.call(cbind,lapply(seq_len(ncol(indx)),function(i) {x<-as.data.frame(apply(resNew[,indx[,i]],1,t.test.p.value)); colnames(x)<-paste("Pvalue",paste(indx[,i],collapse=""),sep="_");x})) print(resPval) resF<-cbind(res,resPval) print(resF) Spec(ListFacGroup,0.05) And it is ok for the file list that you have. But if I apply to one file list with only a and c (for example) I have an error "Error in combn(names(resNew), 2) : n < m" How can I adapt this for all cases? 2013/3/18 arun <smartpink...@yahoo.com> I hope this solved the problem... > > > > >----- Original Message ----- >From: arun <smartpink...@yahoo.com> >To: Vera Costa <veracosta...@gmail.com> >Cc: R help <r-help@r-project.org> > >Sent: Monday, March 18, 2013 2:27 PM >Subject: Re: new question > > > > > z.boxplot<- function(lst){ > new.list<- lapply(lst,function(x) x[x$FDR<0.01,]) >print(new.list) > par(mfrow=c(2,2)) >b1<-lapply(names(new.list),function(x) lapply(new.list[x],function(y) >boxplot(FDR~z,data=y,xlab="Charge",ylab="FDR",main=x))) > >} > z.boxplot(ListFacGroup) #prints new.list > >If you want to turn off that: > z.boxplot<- function(lst){ > new.list<- lapply(lst,function(x) x[x$FDR<0.01,]) >#print(new.list) > par(mfrow=c(2,2)) >b1<-lapply(names(new.list),function(x) lapply(new.list[x],function(y) >boxplot(FDR~z,data=y,xlab="Charge",ylab="FDR",main=x))) > >} > z.boxplot(ListFacGroup) >A.K. > > > > > >________________________________ >From: Vera Costa <veracosta...@gmail.com> >To: arun <smartpink...@yahoo.com> >Sent: Monday, March 18, 2013 1:59 PM >Subject: Re: new question > > >For example, if I run you code without "pdf...." and "dev.off" I have what I >want > >directory<- "C:/Users/Vera Costa/Desktop/dados.lixo" > #modified the function >GetFileList <- function(directory,number){ > setwd(directory) > filelist1<-dir() > > lista<-dir(directory,pattern = paste("MSMS_",number,"PepInfo.txt",sep=""), >full.names = TRUE, recursive = TRUE) > output<- list(filelist1,lista) > return(output) > } >file.list.names<-GetFileList(directory,23)[[1]] >lista<-GetFileList(directory,23)[[2]] >FacGroup<-c(0,1,0,2,2,0,3) >ReadDir<-function(FacGroup){ > list.new<-lista[FacGroup!=0] > read.list<-lapply(list.new, function(x) read.table(x,header=TRUE, sep = >"\t")) > names(read.list)<-file.list.names[FacGroup!=0] > return (read.list) > } >ListFacGroup<-ReadDir(FacGroup) >ListFacGroup > z.boxplot<- function(lst){ > new.list<- lapply(lst,function(x) x[x$FDR<0.01,]) > print(new.list) > #pdf("VeraBP.pdf") > par(mfrow=c(2,2)) > lapply(names(new.list),function(x) lapply(new.list[x],function(y) >boxplot(FDR~z,data=y,xlab="Charge",ylab="FDR",main=x))) > #dev.off() > } > z.boxplot(ListFacGroup) > > > > > >But I have the results too (I don't need it) > > >[[1]] >[[1]]$a2 >[[1]]$a2$stats > [,1] [,2] >[1,] 0.0000000000 0.0000000000 >[2,] 0.0000000000 0.0000000000 >[3,] 0.0001355197 0.0002175095 >[4,] 0.0010588777 0.0004350190 >[5,] 0.0016571381 0.0004350190 >[[1]]$a2$n >[1] 8 2 >[[1]]$a2$conf > [,1] [,2] >[1,] -0.0004559846 -0.0002685062 >[2,] 0.0007270240 0.0007035253 >[[1]]$a2$out >[1] 0.00494012 >[[1]]$a2$group >[1] 1 >[[1]]$a2$names >[1] "2" "3" > >[[2]] >[[2]]$c2 >[[2]]$c2$stats > [,1] [,2] >[1,] 0.0000000000 0.0000000000 >[2,] 0.0000000000 0.0000000000 >[3,] 0.0001355197 0.0002175095 >[4,] 0.0010588777 0.0004350190 >[5,] 0.0016571381 0.0004350190 >[[2]]$c2$n >[1] 8 2 >[[2]]$c2$conf > [,1] [,2] >[1,] -0.0004559846 -0.0002685062 >[2,] 0.0007270240 0.0007035253 >[[2]]$c2$out >[1] 0.00494012 >[[2]]$c2$group >[1] 1 >[[2]]$c2$names >[1] "2" "3" > >[[3]] >[[3]]$c3 >[[3]]$c3$stats > [,1] [,2] >[1,] 0.000000000 0.0000000000 >[2,] 0.000000000 0.0000000000 >[3,] 0.000000000 0.0000000000 >[4,] 0.002226409 0.0002086594 >[5,] 0.002226409 0.0004173187 >[[3]]$c3$n >[1] 6 4 >[[3]]$c3$conf > [,1] [,2] >[1,] -0.001436105 -0.0001648409 >[2,] 0.001436105 0.0001648409 >[[3]]$c3$out >[1] 0.00560348 >[[3]]$c3$group >[1] 1 >[[3]]$c3$names >[1] "2" "3" > >[[4]] >[[4]]$t2 >[[4]]$t2$stats > [,1] [,2] [,3] >[1,] 0 0.0000000000 0 >[2,] 0 0.0000000000 0 >[3,] 0 0.0002908668 0 >[4,] 0 0.0025929827 0 >[5,] 0 0.0052577771 0 >[[4]]$t2$n >[1] 1 10 5 >[[4]]$t2$conf > [,1] [,2] [,3] >[1,] 0 -0.001004691 0 >[2,] 0 0.001586424 0 >[[4]]$t2$out >[1] 0.0092051934 0.0007174888 >[[4]]$t2$group >[1] 2 3 >[[4]]$t2$names >[1] "1" "2" "3" > > ______________________________________________ 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.