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

时间:2017-09-13 13:44:08

标签: r tidyr

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

这是我做的:

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

我已将其转换为数据框,但我左边只有行标签,我想添加/绑定另一列,它会显示与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

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

1 个答案:

答案 0 :(得分:0)

试试这个:

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