首页 > 解决方案 > R中类似变量的相关性

问题描述

我稍微编辑了数据表。

我想在我的数据集中关联具有相似名称的变量:

   A_y  B_y  C_y  A_p  B_p  C_p
1  15   52   32   30   98   56
2  30   99   60   56   46   25
3  10   25   31   20   22   30
     ..........
n  55   23   85   12   34   52

我想获得相关性

  1. A_y-A_p:0.78
  2. B_y-B_p:0.88
  3. C_y-C_p:0.93

我怎样才能在 R 中做到这一点?是否可以?

标签: rcorrelation

解决方案


这真的很危险。语言定义未定义具有无效列名的 data.frames 的行为。重复的列名无效。

您应该重组您的输入数据。无论如何,这是一种处理输入数据的方法。

DF <- read.table(text = "   A  B  C  A  B  C
1 15 52 32 30 98 56
2 30 99 60 56 46 25
3 10 25 31 20 22 30", header = TRUE, check.names = FALSE)

sapply(unique(names(DF)), function(s) do.call(cor, unname(DF[, names(DF) == s])))
#        A          B          C 
#0.9995544  0.1585501 -0.6004010

#compare:
cor(c(15, 30, 10), c(30, 56, 20))
#[1] 0.9995544

推荐阅读