2017-09-13 127 views
1

我有大約4000行和220列的數據集。 由於研究和分析的原因,我創建了一個相關矩陣,並濾除了大於0.4的所有值,以便進一步研究這些特徵。如何在R中將相關矩陣轉換爲df來創建行名,行索引,列索引,列名?

這裏是我做過什麼:

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

是,也不是,我已經試過您的解決方案,但它並沒有告訴我什麼是我真正需要的。我已經使用另一個解決方案as.data.frame(as.table(data)),它解決了我的問題。 – Steves

回答

0

試試這個:

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

有沒有必要使用tidyrbasemerge這是否完美。

使用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