【发布时间】:2020-06-07 21:22:13
【问题描述】:
我正在尝试搜索高度相关的变量。我目前的代码是:
which(cor(numericData)<1&cor(numericData)>0.8,arr.ind = TRUE) 这给出了输出:
row col
VarAlice 20 5
VarBob 11 10
VarCoco 10 11
Year 5 20
我对此有很多问题:
- 为了得到这个输出,我必须输入
cor(numericData)more 不止一次。我本来想输入类似的东西0.8<cor(numericData)<1。 给出的输出没有告诉我 相关变量的名称,这意味着我将拥有 将此输出与大量原始数据集进行交叉引用。
将此输出反馈给
cor(numericData),即cor(numericData)[which(cor(numericData)<1&cor(numericData)>0.8,arr.ind= TRUE)]相当丑陋,并且丢失了有关数据来自哪些行/列的所有信息,并且只是吐出相关系数。
有没有更好的方法?我的理想输出将是cor(numericData) 的一个子集,它只显示相关的相关系数并具有识别它们所需的行/列名称。在这种特定情况下,很明显varAlice 似乎与Year 密切相关,但是如果我有 50 个变量,就像我的用例那样,这将更难看出。
【问题讨论】:
-
你为什么不能创建一个对象
cor1 <- cor(numericData)然后重用那个对象out <- which(cor1 < 1 & cor1 > 0.8, arr.ind = TRUE); data.frame(rn = row.names(cor1)[out[,1], colnames(cor1)[out[,2]) -
@akrun 这确实把事情整理了一下,谢谢。
标签: r correlation