2017-09-13 8 views
1

私は約4000行と220列のデータセットを持っています。 研究と分析の理由から、私は相関マトリックスを作成し、フィーチャーのさらなる研究のために0.4より大きいすべての値を除外しました。ここで Rのdfに変換された相関行列から行名、行インデックス、colインデックス、col名を作成するには?

は私がやったことです:私は、データフレームに変換しているが、私は左にのみ行ラベルを持って

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

はいといいえ、私はあなたのソリューションを試してみましたが、それは私が本当に必要なものを私に示していない:

mtcars使用私はこれを取得します。私は別のソリューションas.data.frame(as.table(data))を使用して、私の問題を解決しました。 – Steves

答えて

0

このお試しください:tidyrを使用する必要はありません

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

を、basemergeは完全にこれを行います。

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 
関連する問題