Thank you all for the answers. I really need to learn a lot. Bu I also discover cor2m(x, y, trim = TRUE, alpha = 0.05) in ecodist package, which gives an output file with significant correlations.
Özgül Yj>HI, > >#ag data was created >bg<- as.matrix(read.table(text=" > Otu00022 Otu00029 Otu00039 Otu00042 Otu00101 Otu00105 Otu00125 Otu00131 >Otu00137 Otu00155 Otu00158 Otu00172 Otu00181 Otu00185 Otu00190 Otu00209 >Otu00218 >Gi20Jun11 0.001217 0 0.001217 0 0.000000 0 0 > 0 0.001217 0 0 0 0 0 0.001217 0 >0.001217 >Gi40Jun11 0.000000 0 0.000000 0 0.000000 0 0 > 0 0.000000 0 0 0 0 0 0.000000 0 >0.000000 >Gi425Jun11 0.000000 0 0.000000 0 0.000000 0 0 > 0 0.000000 0 0 0 0 0 0.000000 0 >0.000000 >Gi45Jun11 0.000000 0 0.000000 0 0.001513 0 0 > 0 0.000000 0 0 0 0 0 0.000000 0 >0.000000 >Gi475Jun11 0.000000 0 0.000000 0 0.000000 0 0 > 0 0.000000 0 0 0 0 0 0.000000 0 >0.000000 >Gi50Jun11 0.000000 0 0.000000 0 0.000000 0 0 > 0 0.000000 0 0 0 0 0 0.000000 0 >0.000000 >",sep="",header=TRUE,stringsAsFactors=F)) >set.seed(128) >ag<- matrix(rnorm(30),nrow=6) >colnames(ag)<- paste("ag",1:5,sep="") >bg_ag<-expand.grid(colnames(bg),colnames(ag),stringsAsFactors=FALSE) > attr(bg_ag,"out.attrs")<- NULL > library(Hmisc) >#correlation >resr<-do.call(rbind,lapply(split(bg_ag,1:nrow(bg_ag)),function(x) >{res<-rcorr(cbind(bg[,x[,1]],ag[,x[,2]]),type="spearman")$r; row.names(res)<- >rep(paste(x[1],x[2],sep="_"),2);res})) > head(resr) ># [,1] [,2] >#Otu00022_ag1 1.0000000 0.1309307 >#Otu00022_ag1 0.1309307 1.0000000 >#Otu00029_ag1 1.0000000 NaN >#Otu00029_ag1 NaN 1.0000000 >#Otu00039_ag1 1.0000000 0.1309307 >#Otu00039_ag1 0.1309307 1.0000000 > >#p-values >resP<-do.call(rbind,lapply(split(bg_ag,1:nrow(bg_ag)),function(x) >{res<-rcorr(cbind(bg[,x[,1]],ag[,x[,2]]),type="spearman")$P; row.names(res)<- >rep(paste(x[1],x[2],sep="_"),2);res})) > head(resP) ># [,1] [,2] >#Otu00022_ag1 NA 0.8047262 >#Otu00022_ag1 0.8047262 NA >#Otu00029_ag1 NA NaN >#Otu00029_ag1 NaN NA >#Otu00039_ag1 NA 0.8047262 >#Otu00039_ag1 0.8047262 NA > >#If you need only the values >indx<-row(resr)%%2!=1 > resPnew<-as.matrix(resP[indx[,1],1]) > resrnew<-as.matrix(resr[indx[,1],1]) > >head(resPnew) ># [,1] >#Otu00022_ag1 0.8047262 >#Otu00029_ag1 NaN >#Otu00039_ag1 0.8047262 >#Otu00042_ag1 NaN >#Otu00101_ag1 0.1583024 >#Otu00105_ag1 NaN > >head(resrnew) ># [,1] >#Otu00022_ag1 0.1309307 >#Otu00029_ag1 NaN >#Otu00039_ag1 0.1309307 >#Otu00042_ag1 NaN >#Otu00101_ag1 -0.6546537 >#Otu00105_ag1 NaN > >A.K. > > > > >----- Original Message ----- >From: Ozgul Inceoglu <ozgul.inceo...@ulb.ac.be> >To: r-help@r-project.org >Cc: >Sent: Wednesday, February 13, 2013 4:48 AM >Subject: [R] spearman correlation and p-value as a matrix > >I have two data matrices that I want to make the correlation between each >column from data1 and each column from data 2 and also calculate the p-value >Matrices dont have the same size and I tried such a script. >> bg <- read.table (file.choose(), header=T, row.names) >> bg >> Otu00022 Otu00029 Otu00039 Otu00042 Otu00101 Otu00105 Otu00125 Otu00131 >> Otu00137 Otu00155 Otu00158 Otu00172 Otu00181 Otu00185 Otu00190 Otu00209 >> Otu00218 >> Gi20Jun11 0.001217 0 0.001217 0 0.000000 0 0 0 0.001217 0 0 0 0 0 0.001217 0 >> 0.001217 >> Gi40Jun11 0.000000 0 0.000000 0 0.000000 0 0 0 0.000000 0 0 0 0 0 0.000000 0 >> 0.000000 >> Gi425Jun11 0.000000 0 0.000000 0 0.000000 0 0 0 0.000000 0 0 0 0 0 0.000000 >> 0 0.000000 >> Gi45Jun11 0.000000 0 0.000000 0 0.001513 0 0 0 0.000000 0 0 0 0 0 0.000000 0 >> 0.000000 >> Gi475Jun11 0.000000 0 0.000000 0 0.000000 0 0 0 0.000000 0 0 0 0 0 0.000000 >> 0 0.000000 >> Gi50Jun11 0.000000 0 0.000000 0 0.000000 0 0 0 0.000000 0 0 0 0 0 0.000000 0 >> 0.000000 >ag <- read.table (file.choose(), header=T, row.names) > >for (i in 1:(ncol(bg))) >for (j in 1:(ncol(ag))) >print(c(i,j)) >final_matrix <- matrix(rep("0",ncol(bg)*ncol(ag)),ncol=ncol(bg),nrow=ncol(ag)) > >cor <- cor.test(as.vector(as.matrix(bg[,i])),as.vector(as.matrix(ag[,j])), >method="spearman") > >#but the output is not matrice with all the values but a single correlation >value > >data: bg[, i] and ag[, j] >t = 2.2992, df = 26, p-value = 0.02978 >alternative hypothesis: true correlation is not equal to 0 >95 percent confidence interval: >0.04485289 0.67986803 >sample estimates: > cor >0.4110515 > ># How I can creat an outfile with all the correlations and p-values? > >Thank you very much! >Özgül > >______________________________________________ >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. > > > Özgül Inceoglu, PhD. Université Libre de Bruxelles Ecology of Aquatic Systems Campus de la plaine CP221 Boulevard du triomphe 1050 Bruxelles Belgium ______________________________________________ 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.