我有一个大约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
请建议我一种方法 - 快速创意和简单,我想学习最佳实践。
答案 0 :(得分:0)
试试这个:
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