在特定限制之上指定的数据帧/相关变量列表

时间:2017-11-09 14:18:52

标签: r correlation r-caret

我正在创建一个相关矩阵,并通过插入符号包中的findCorrelation()函数,我正在识别与另一个参数高于0.75相关的参数。 之后,我将删除findCorrelation命令中出现的相关参数。

highlyCorrelated <- findCorrelation(correlationMatrix,cutoff=(0.75),verbose = FALSE)
correlated_var=colnames(data[,highlyCorrelated])
data.dat <- data[!(names(data) %in% c(correlated_var))]

为了完整起见,在呈现后面的结果时,我想提供一个列表,列出要删除的参数,以及相关性。 有没有办法生成一个数据框,在第一列中包含已删除的参数,在以下列中包含该特定参数与之相关的参数?

我可以使用以下方式调用某些相关性:

correlationMatrix[correlationMatrix[x,]>0.75,x] 

其中x是与其他参数具有高于0.75的相关性的已识别参数。但我不确定如何将其转换为数据框或表格,以便呈现结果。

非常感谢帮助!

此致 涡

1 个答案:

答案 0 :(得分:0)

我在某处使用了包plyr和rowr:

cor.table <- matrix(, nrow = 0, ncol = 0)
for (i in sort(highlyCorrelated)){
  cor.table.i <- c(paste(colnames(correlationMatrix)[c(i)],":"),paste(names(correlationMatrix[abs(correlationMatrix[i,])>0.75,i])))
  cor.table <- cbind.fill(cor.table,cor.table.i,fill=NA)
}
cor.table <- t(cor.table[c(-1)])

这是一种解决方法,也许不是最漂亮的,但至少我得到的东西可以导出。

由于某些原因,我无法摆脱答案显示参数与自身相关的事实。