如何在 R 中从转换为 df 的相关矩阵创建行名、行索引、col 索引、列名?

How to create a row name, row index, col index, col name from correlation matrix converted to df in R?

我有一个大约 4000 行和 220 列的数据集。 出于研究和分析的原因,我创建了一个相关矩阵并过滤掉所有大于 0.4 的值以进一步研究这些特征。

这是我所做的:

df_high_corr <- which((res > 0.4 & res < 1), arr.ind = T)
res1 <- as.data.frame(df_high_corr))

我已将其转换为数据框,但左侧只有行标签,我想 add/bind 另一列将显示与 col 值对应的列名。

例如:

__________|_row__|_col____|_col_name______
DM.RESY   | 18   |  6     | dummy_col_name
DM.MARIT  | 19   |  6     | dummy_col_name
PHX.dage  |198   |  6     | dummy_col_name
CRS.VSCLR |206   |  6     | dummy_col_name
QH.HENGY  | 61   | 12     | dummy_col_name2
QC.CVWSF  | 41   | 13     | dummy_col_name3

请给我建议一种方法 - 快速且简单,我想学习最佳实践。

试试这个:

foo <- data.frame(col_name = colnames(res), col = 1:ncol(res))
merge(which((res > 0.4 & res < 1), arr.ind = T), foo)

不需要用tidyrbase merge就完美了。

使用 mtcars 我得到这个:

res <- cor(mtcars)
foo <- data.frame(col_name = colnames(res), col = 1:ncol(res))
bar <- merge(which((res > 0.4 & res < 1), arr.ind = T), foo)
head(bar)

  col row col_name
1   1   5      mpg
2   1   7      mpg
3   1   8      mpg
4   1   9      mpg
5   1  10      mpg
6   2   3      cyl