Dear John and the rest, Finally, it seems that now I have found a solution for the problem:
options(width=200) #make window size bigger #create a test dataset (which is a correlation matrix) #with row and col names #extract from this matrix only those correlations #that fulfill a specific criterion (e.g. r>.6): m=matrix(sample(1:100,replace=T),10,10) dimnames(m)=list(letters[1:10],letters[11:20]) #define the matrix w=cor(m,use="pairwise.complete.obs") #calculate correlations dimnames(w)[[1]] <- letters[1:10] # (redundant) ww <- which(w>0.6 & w!=1,arr.ind=TRUE) #extract row and col numbers z <- w[w>.6 & w!=1] #extract the values of w for which cor>.6 cb=cbind(ww,z) df=data.frame(cbind(unlist(cb), #this creates the desired data frame rownames(m)[ww[,1]], colnames(m)[ww[,2]] )) names(df)=c("rownum","colnum","cor","rowname","colname") w df ##see the output: w[,7:10] #I truncated some of the first columns q r s t a -0.309715184 -0.09883224 0.45408912 -0.07051100 b 0.404094514 0.34563176 -0.12843155 0.35146457 c 0.002622620 -0.05056305 0.41835887 0.17600379 d 0.209332532 0.41291792 -0.34179279 -0.13641805 e 0.181234863 0.05597689 -0.54389838 0.01532882 f -0.058110523 -0.31290094 -0.04454678 -0.15160867 g 1.000000000 0.32582721 -0.64595319 0.70347824 h 0.325827210 1.00000000 -0.29604489 -0.09964339 i -0.645953195 -0.29604489 1.00000000 -0.31197856 j 0.703478239 -0.09964339 -0.31197856 1.00000000 > df rownum colnum cor rowname colname j 10 7 0.703478238573416 j q g 7 10 0.703478238573416 g t Thanks to all who assisted in the solution of this problem! All the best Christoph John Kane schrieb: > I thought of that after I went home last night. So > using Rolf's suggest, will this do what you want? > > Again using my simplified matrix > > m=matrix(sample(1:20,replace=T),4,5) > w=data.frame(cor(m,use="pairwise.complete.obs")) ;w > ww <- which(w>0.6 & w!=1,arr.ind=TRUE); ww > z <- w[w>.6 & w!=1] > > cbind(ww,z) > > Exactly how you eliminate duplicate correlations is > another question. > > > --- Christoph Scherber > <[EMAIL PROTECTED]> wrote: > >> Dear John, >> >> Thanks very much for your help; but actually I would >> like to have the >> colNames and rowNames for the correlations >> >> -such that I can say: Only (a and c ) and (d and f) >> were correlated with >> r>0.6: >> >> m=matrix(sample(1:100,replace=T),10,10) >> dimnames(m)=list(letters[1:10],letters[11:20]) >> w=cor(m,use="pairwise.complete.obs") >> w*(w>0.6) >> >> #works, but how do I get rid of those rows or >> columns >> #for which the colSum (or rowSum) is 1? >> >> Thanks very much in advance for your help! >> >> Best wishes >> Christoph >> >> >> >> >> >> John Kane schrieb: >>> w[w>.6] seems to work for me. I cut down the size >> of >>> the matrix for easier visual inspection. >>> >>> m=matrix(sample(1:20,replace=T),4,5) >>> w=cor(m,use="pairwise.complete.obs") >>> w >>> >>> w[w>.6] >>> >>> perhaps perferabely >>> w[w>0.6 & w!=1] >>> >>> >>> --- Christoph Scherber >>> <[EMAIL PROTECTED]> wrote: >>> >>>> Dear R users, >>>> >>>> suppose I have a matrix of observations for which >> I >>>> calculate all >>>> pair-wise correlations: >>>> >>>> m=matrix(sample(1:100,replace=T),10,10) >>>> w=cor(m,use="pairwise.complete.obs") >>>> >>>> How do I extract only those correlations that are >>>>> 0.6? >>>> w[w>0.6] #obviously doesn´t work, >>>> >>>> and I can´t find a way around it. >>>> >>>> I would very much appreciate any help! >>>> >>>> Best wishes >>>> Christoph >>>> >>>> >>>> (using R 2.5.1 on Windows XP) >>>> >>>> >>>> >>>> >>>> -- >>>> Dr. Christoph Scherber >>>> DNPW, Agroecology >>>> University of Goettingen >>>> Waldweg 26 >>>> D-37073 Goettingen >>>> Germany >>>> >>>> phone +49(0)551 39 8807 >>>> fax +49(0)551 39 8806 >>>> homepage www.gwdg.de/~cscherb1 >>>> >>>> ______________________________________________ >>>> 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. >>>> >>> >>> >>> Connect with friends from any web browser - >> no download required. Try the new Yahoo! Canada >> Messenger for the Web BETA at >> http://ca.messenger.yahoo.com/webmessengerpromo.php >>> . >>> >> >> > > > > Be smarter than spam. See how smart SpamGuard is at giving junk email > the boot with the All-new Yahoo! Mail. Click on Options in Mail and switch > to New Mail today or register for free at http://mail.yahoo.ca > > . > ______________________________________________ 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.