你将如何创建一个手动计算r中的皮尔逊相关性的函数 . 我知道有一个名为 cor 的本机函数,但如果我想将R中的下面的等式应用于数据框中的每个列组合,我该怎么做呢?
我希望我知道如何,但我相信它需要许多for循环,嵌套for循环等才能实现它并且我在编程方面还不是那么强大 . 我希望有人会尝试像我这样的新手可以学习 . 谢谢
例:
set.seed(1)
DF = data.frame(V1 = rnorm(10), V2=rnorm(10), V3=rnorm(10), V4=rnorm(10))
# V1 V2 V3 V4
# V1 1.00 -0.38 -0.72 -0.24
# V2 -0.38 1.00 0.60 0.18
# V3 -0.72 0.60 1.00 0.08
# V4 -0.24 0.18 0.08 1.00
2 回答
首先编写辅助函数来计算协方差:
然后用它来计算相关性:
这是一个快速检查它是否正常工作:
请注意,以这种方式计算相关性在数值上是不稳定的 .
编辑:
要将其应用于所有列组合,请使用
outer
:好 . 您不需要“手动”执行此操作,只需使用....
...计算所有列组合的r .