【问题标题】:Correlation between two corresponding columns from seperate datasets来自不同数据集的两个对应列之间的相关性
【发布时间】:2016-10-05 12:37:21
【问题描述】:

我有两组数据,其中包含具有相同名称的列,但这些列中的值不同。例如:

m1 <- matrix(1:9, nrow = 3, ncol = 3, byrow = TRUE,
             dimnames = list(c("s1", "s2", "s3"),c("cow", "dog","cat")))
m2 <- matrix(1:9, nrow = 3, ncol = 3, byrow = FALSE,
             dimnames = list(c("s1", "s2", "s3"),c("dog", "cow","cat")))
> m1
   cow dog cat
s1   1   2   3
s2   4   5   6
s3   7   8   9
> m2
   dog cow cat
s1   1   4   7
s2   2   5   8
s3   3   6   9

我想使用 cor.test() 创建一个函数来计算相应列之间的相关性。例如。牛对牛,狗对狗。使用 cor.test() 的原因是我想获得相关系数和 p 值。所以,如果有其他方法可以获取这些信息,我也愿意接受。实际的数据集有几千列,是随机组织的,所以我正在寻找一种方法,先匹配列,然后计算相关性。有任何想法吗?

【问题讨论】:

    标签: r correlation


    【解决方案1】:

    这是一个解决方案,在公共列上使用lapply

    # Common columns
    cols <- intersect(colnames(m1), colnames(m2))
    
    # For each column, compute cor test
    res <- lapply(cols, function(x) cor.test(
      m1[, x],
      m2[, x]
    ))
    
    names(res) <- cols
    

    结果是您可以通过以下方式访问的htest 对象列表:res[["cow"]]

    【讨论】:

      猜你喜欢
      • 2014-08-03
      • 2021-03-15
      • 1970-01-01
      • 1970-01-01
      • 2022-11-23
      • 1970-01-01
      • 2020-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多