如何在 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)
不需要用tidyr
,base
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
我有一个大约 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)
不需要用tidyr
,base
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