[英]Finding out the top 10 corr features in a data in R
我有一個非常大的數據集。 我需要找出哪些變量在數據集中具有最高百分比的相關性。
我的代碼在下面,它顯示了我所有的相關性,但是我有 69 列,所以不可能檢查所有的列(不是字面意思,但我相信你能理解我的意思)。
我正在使用的代碼如下:
文件:CW_ModelDevelopment Select 僅限數字
CW_ModelDevelopment %>%
# Select numeric columns
select_if(is.numeric) %>%
# Calculate correlation matrix
cor()
有人可以幫我獲取一個代碼,該代碼可以以百分比顯示結果,或者設置一個條件,任何與 x 量相關的東西都應該打印我想要的 Python 中的編碼示例如下:
如果我們將cor()
output 作為網絡 object 的鄰接矩陣處理, igraph
可以幫助我們將 output 轉換為自己的data.frame
結構, 使用dplyr::top_n()
我們可以看到前十個結果及其值。
library(tidyverse)
library(igraph, warn.conflicts = FALSE)
matrix(sample(1:10, 1000, replace = TRUE), 20 , 50) %>%
as_tibble(.name_repair = "universal") %>%
cor() %>%
igraph::graph_from_adjacency_matrix(weighted = TRUE,
diag = FALSE) %>%
igraph::as_data_frame() %>%
top_n(10)
#> New names:
#> * `` -> ...1
#> * `` -> ...2
#> * `` -> ...3
#> * `` -> ...4
#> * `` -> ...5
#> * ...
#> Selecting by weight
#> from to weight
#> 1 ...3 ...34 0.7098358
#> 2 ...5 ...24 0.6054965
#> 3 ...9 ...16 0.6129791
#> 4 ...16 ...9 0.6129791
#> 5 ...21 ...38 0.6092931
#> 6 ...24 ...5 0.6054965
#> 7 ...33 ...42 0.6226324
#> 8 ...34 ...3 0.7098358
#> 9 ...38 ...21 0.6092931
#> 10 ...42 ...33 0.6226324
你可以試試:
mat <- cor(mtcars) > 0.9
diag(mat) <- FALSE
colnames(mtcars)[which(mat, arr.ind = TRUE)[, 2]]
#[1] "cyl" "disp"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.