如何在dplyr中使用summarise_each进行相关?

max*_*oku 0 r dplyr

一个数据框有20列,我想找到列"a"与其余列的相关性.

我怎么能用dplyr做到这一点?

我知道如何进行个别关联,例如:

test %>%
  dplyr::summarize(cor(a, b))
Run Code Online (Sandbox Code Playgroud)

或者summaryrise_each的意思.

但是我怎么能做到相关呢?

两个用例:

  1. 它计算数据框中每隔一列的相关性.
  2. 它在哪里计算与我提到的列的相关性.

Sim*_*son 5

corrr包使用dplyr作为后端(因此很容易使用它)通过correlate() %>% focus()以下方式执行此操作:

library(corrr)

mtcars %>% 
  correlate() %>% 
  focus(mpg)
#> # A tibble: 10 × 2
#>    rowname        mpg
#>      <chr>      <dbl>
#> 1      cyl -0.8521620
#> 2     disp -0.8475514
#> 3       hp -0.7761684
#> 4     drat  0.6811719
#> 5       wt -0.8676594
#> 6     qsec  0.4186840
#> 7       vs  0.6640389
#> 8       am  0.5998324
#> 9     gear  0.4802848
#> 10    carb -0.5509251

mtcars %>% 
  select(mpg, disp, hp) %>% 
  correlate() %>% 
  focus(mpg)
#> # A tibble: 2 × 2
#>   rowname        mpg
#>     <chr>      <dbl>
#> 1    disp -0.8475514
#> 2      hp -0.7761684
Run Code Online (Sandbox Code Playgroud)

focus()dplyr::select()除了它排除行中任何剩余的列之外,其行为类似.如果有兴趣,请在这里查看focus_.cor_df()GitHub .