[R] how to remove one of any two indices with a correlation greater than 0.90 in a matrix (or data.frame)
bbslover
dluthm at yeah.net
Sun Nov 8 15:08:51 CET 2009
my code is not right below:
rm(list=ls())
#define data.frame
a=c(1,2,3,5,6); b=c(1,2,3,4,7); c=c(1,2,3,4,8); d=c(1,2,3,5,1);
e=c(1,2,3,5,7)
data.f=data.frame(a,b,c,d,e)
#backup data.f
origin.data<-data.f
#get correlation matrix
cor.matrix<-cor(origin.data)
#backup correlation matrix
origin.cor<-cor.matrix
#get dim
dim.cor<-dim(origin.cor)
#perform Loop
n<-0
for(i in 1:(dim.cor[1]-1))
{
for(j in (i+1):(dim.cor[2]))
{
if (cor.matrix[i,j]>=0.95)
{
data.f<-data.f[,-(i-n)]
n<-1
break
}
}
}
origin.cor
origin.data
data.f
cor(data.f)
how write the code to do with my questions? and have a simple way?
--
View this message in context: http://old.nabble.com/how-to-remove-one-of-any-two-indices-with-a-correlation-greater-than-0.90-in-a-matrix-%28or-data.frame%29-tp26254082p26254082.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list