【问题标题】:Column by column correlation between two data sets with R?两个数据集与R之间的逐列相关性?
【发布时间】:2021-08-07 16:06:35
【问题描述】:

我有两个数字数据集。 Df1 和 Df2 各包含 15000 列。我现在想计算相关性,但仅在 Df1 的第 1 列和 Df2 的第 1 列之间,然后在第 2 列 Df1 和第 2 列 Df2 之间,依此类推。这适用于所有 15000 列。创建相关矩阵会产生很多不需要的相关性。因此,我正在寻找更优雅的解决方案。

谁能帮帮我?

提前致谢 H.

【问题讨论】:

    标签: r correlation


    【解决方案1】:

    您应该通过提取数据的几行/列来提供可重现的数据,以说明您尝试过的内容。或者只是用类似的结构组成数据,例如:

    set.seed(42)
    Df1 <- data.frame(matrix(runif(50), 10, 5))
    Df2 <- data.frame(matrix(runif(50), 10, 5))
    

    现在使用sapply:

    idx <- ncol(Df1)
    result <- sapply(seq(idx), function(i) cor(Df1[, i], Df2[, i]))
    result
    # [1]  0.24864047 -0.40809796  0.03718413 -0.09967868  0.46627380
    

    【讨论】:

      【解决方案2】:

      基于purrr的另一种解决方案(使用dcarlson的数据):

      library(purrr)
      
      map2_dbl(
        .x = Df1,
        .y = Df2,
        ~ cor(.x, .y)
        )
      

      返回

      #>         X1          X2          X3          X4          X5 
      #> 0.24864047 -0.40809796  0.03718413 -0.09967868  0.46627380 
      

      【讨论】:

        猜你喜欢
        • 2022-11-23
        • 1970-01-01
        • 2014-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多