计算R中矩阵各列之间的相关性

时间:2019-11-05 02:56:19

标签: r correlation

我在R中具有以下矩阵mat

      x  y  z
rowA -1  1  2
rowB -1 -2 -1
rowC  2  1 -1

如何计算矩阵各列之间的相关性(例如corr(x, y)corr(y, z)corr(x, z)),而不是将各列分成向量?

如果人们能抽出时间来解释这一点,我将不胜感激。

3 个答案:

答案 0 :(得分:1)

您可以这样做:

#gives pairwise
COR = cor(M)
# to get 1 vs 2, 1 vs 3 and 2 vs 3
COR[upper.tri(COR)]

答案 1 :(得分:0)

我们可以使用combn创建一次取2的列名称组合,从矩阵中组合该组合,然后计算它们之间的相关性。

combn(colnames(mat), 2, function(x) cor(mat[, x[1]], mat[, x[2]]))
#[1]  0.5 -0.5  0.5

数据

mat <- structure(c(-1L, -1L, 2L, 1L, -2L, 1L, 2L, -1L, -1L), .Dim = c(3L, 
3L), .Dimnames = list(c("rowA", "rowB", "rowC"), c("x", "y", "z")))

答案 2 :(得分:0)

基本R:

cor_df <- data.frame(vars = row.names(cor(mat)), cor(mat), row.names = NULL)
相关问题