如何在 R 中找出两个数据框行之间的相关系数?


我们通常会求解 R 数据框列之间的相关系数,但我们也可能需要求解两个数据框行之间的相关系数。在某些情况下,我们需要进行此项操作,即我们判断一个 R 数据框的行与另一个数据框的行之间存在某些关系。例如,R 数据框的一个行显示一位客户在一个年份的购买趋势,而另一个数据框的同一行显示同一位客户在另一年的购买趋势。

考虑下面这个数据框 -

范例

 实时演示

x1<-sample(0:100,20)
x2<-sample(0:100,20)
x3<-sample(0:100,20)
df1<-data.frame(x1,x2,x3)
df1

输出

  x1 x2 x3
1 56 61 23
2 87 89 60
3 26 38 5
4 92 23 81
5 43 34 51
6 54 39 55
7 20 1 40
8 38 35 93
9 7 68 35
10 15 71 36
11 39 13 43
12 10 72 61
13 29 95 14
14 70 42 76
15 61 50 63
16 45 88 52
17 25 4 25
18 16 19 17
19 35 57 64
20 46 44 67

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

范例

 实时演示

y1<-sample(0:100,20)
y2<-sample(0:100,20)
y3<-sample(0:100,20)
df2<-data.frame(y1,y2,y3)
df2

输出

  y1 y2 y3
1 80 8 10
2 23 46 89
3 43 81 64
4 22 57 68
5 16 18 50
6 78 22 11
7 34 28 5
8 81 38 37
9 99 26 94
10 21 74 44
11 10 40 52
12 26 32 98
13 11 49 2
14 52 23 1
15 1 61 62
16 33 96 82
17 32 71 70
18 57 73 87
19 48 25 60
20 89 41 90

找出 data frame df1 和 data frame df2 行之间的相关系数 -

范例

sapply(1:nrow(as.matrix(df1)), function(i) cor(as.matrix(df1)[i,], as.matrix(df2)[i,]))

输出

[1] 0.36890690 -0.91625073 0.30193606 -0.42728802 0.81965616 0.30896698
[7] -0.76093117 -0.47727710 -0.91512959 0.99774017 -0.11918743 0.41844066
[13] 0.99997923 -0.08688539 -0.35782508 0.77650429 -0.51934914 0.36342738
[19] 0.05387382 0.58105192

更新于: 2020 年 10 月 18 日

772 次浏览

开启你的职业生涯

完成课程以获得认证

开始学习
广告