【问题标题】:How do I run multivariable correlation?如何运行多变量相关?
【发布时间】:2020-11-03 13:59:46
【问题描述】:

我有大量数据想除以多个变量,如下图所示:

这里总共有 63 个图,除以 3 个变量(rowscolsfram)。当然,在现实中,valuexvaluey 有超过 3 个观察值。我想尽可能有效地找到其中每一个的 Pearson 相关性,但我对想法有点茫然。

以下是一些用于创建绘图的示例数据:

example_df <- data.frame(rows = rep(c('r1', 'r2', 'r3'), 63),
                         cols = rep(letters[1:7], 27),
                         fram = rep(c('X', 'Y', 'Z'), each = 63),
                         valuex = rnorm(189),
                         valuey = rnorm(189))

【问题讨论】:

    标签: r correlation pearson-correlation


    【解决方案1】:

    您可以使用dplyrgroup_by 多个变量,然后使用summarize 来获得每个子组的valuexvaluey 之间的cor

    library(dplyr)
    
    example_df %>% group_by(rows, cols, fram) %>% summarize(cor = cor(valuex, valuey))
    #> # A tibble: 63 x 4
    #> # Groups:   rows, cols [21]
    #>    rows  cols  fram     cor
    #>    <chr> <chr> <chr>  <dbl>
    #>  1 r1    a     X     -0.709
    #>  2 r1    a     Y      0.178
    #>  3 r1    a     Z     -0.597
    #>  4 r1    b     X     -0.338
    #>  5 r1    b     Y      0.981
    #>  6 r1    b     Z     -0.731
    #>  7 r1    c     X      0.945
    #>  8 r1    c     Y     -0.913
    #>  9 r1    c     Z      0.177
    #> 10 r1    d     X      0.999
    #> # ... with 53 more rows
    

    reprex package (v0.3.0) 于 2020 年 7 月 14 日创建

    【讨论】:

    • 太棒了,正是我想要的!谢谢!
    猜你喜欢
    • 2018-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多