我有2列数据框(df),例如
Variable(character): Value(numeric):
A 12.25
A 2.14
A 31.10
B 4.6
B 6.987
D 74.10
D 6.17
D 10.365
D 54.98
C 10.47
C 156.1420
C 1.69
我想计算每个变量之间的相关性。这样的事情(价值是完全随机的:
A B D C
A 0.25 0.32 0.1256 0.9
B 0.9 0.47 0.125 0.144
D 0.36 0.12 0.87 0.54
C 0.369 0.147 0.4 0.485
答案 0 :(得分:3)
假设您的变量具有相同数量的观察结果:
cor(as.data.frame(split(df$val, df$var)))
产地:
a b c d
a 1.0000000 0.3332724 -0.4755813 -0.1367066
b 0.3332724 1.0000000 -0.9171748 -0.2348487
c -0.4755813 -0.9171748 1.0000000 0.5713294
d -0.1367066 -0.2348487 0.5713294 1.0000000
您的数据中的假设不成立。不确定您打算如何计算不等数量的观测值的相关性。这是我使用的数据:
set.seed(1)
df <- data.frame(var=rep(letters[1:4], each=4), val=runif(16))