Re: [R] Extract correlations from a matrix

2007-11-09 Thread Christoph Scherber
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(w0.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.0  0.32582721 -0.64595319  0.70347824
h  0.325827210  1. -0.29604489 -0.09964339
i -0.645953195 -0.29604489  1. -0.31197856
j  0.703478239 -0.09964339 -0.31197856  1.




  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(w0.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 
 r0.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*(w0.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[w0.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[w0.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.


[R] Extract correlations from a matrix

2007-11-08 Thread Christoph Scherber
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[w0.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.


Re: [R] Extract correlations from a matrix

2007-11-08 Thread Henrique Dallazuanna
If I understand what you want, you can use 'which'

which(w0.6, arr.ind=T)


On 08/11/2007, 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[w0.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.




-- 
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40 S 49° 16' 22 O

[[alternative HTML version deleted]]

__
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.


Re: [R] Extract correlations from a matrix

2007-11-08 Thread Julian Burgos
Hey Christoph,

It is not clear what do you want to extract.
w[w0.6] does give you the correlation values above 0.6.  What is your 
question?

Julian

Christoph Scherber 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[w0.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)
 
 
 


__
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.


Re: [R] Extract correlations from a matrix

2007-11-08 Thread Rolf Turner

On 9/11/2007, at 9:01 AM, Julian Burgos wrote:

 Hey Christoph,

 It is not clear what do you want to extract.
 w[w0.6] does give you the correlation values above 0.6.  What is your
 question?

 Julian


Perhaps he wants

which(w0.6,arr.ind=TRUE)

It is indeed hard to answer questions which require telepathy on the
part of the responder.

cheers,

Rolf Turner

 Christoph Scherber 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[w0.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)





 __
 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.

##
Attention: 
This e-mail message is privileged and confidential. If you are not the 
intended recipient please delete the message and notify the sender. 
Any views or opinions presented are solely those of the author.

This e-mail has been scanned and cleared by MailMarshal 
www.marshalsoftware.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.