簡體   English   中英

找出 R 數據中的前 10 個 corr 特征

[英]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 中的編碼示例如下:

我想要的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM