R 连续列之间的相关性

标签 r correlation sapply

我正在尝试编写一些代码来轻松计算矩阵中所有连续列之间的相关性。

假设我有 A、B、C、D、E 列。

我想要成对相关 AB、BC、CD、DE。

为了避免写一个循环,我玩过sapply,但到目前为止不是很成功。

如有任何支持,我将不胜感激。

最佳答案

您可以利用 cor 自动计算所有列相关的事实:

cor(df)[cbind(2:ncol(df), 1:(ncol(df) - 1))]
# [1] -0.08727070 -0.10444715  0.06008165  0.18030921

比较:

cor(df$a, df$b)
# [1] -0.0872707 
cor(df$b, df$c)
# [1] -0.1044471

在这里,我们计算完整的相关矩阵,然后子集得到超对角线(对角线从实际对角线向上移动一个),它对应于列 1 - 2、2 - 3 等的相关性。我们使用矩阵进行子集化,该矩阵由指定所有超对角坐标的 cbind 创建。

这是我生成数据的方式:

set.seed(123)
df <- as.data.frame(replicate(5, runif(100), s=F))
names(df) <- letters[1:ncol(df)]

关于R 连续列之间的相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21676316/

相关文章:

r - "Page Not Found"尝试访问部署在 Netlify 上的站点时

r - h2o.predict() 在新测试集上使用哪个阈值?

r - 使用 ggplot2 生成带有移位标签的颜色图例

R Plyr Sapply 似乎真的很慢

r - 使用“…”和“复制”

r - 当我更改切片图层时,传单和 Shiny 的 R 圆圈不会与 map$addCircle 一起出现

matlab - 如何在 Matlab 中将相关矩阵可视化为模式球

c++ - 在 C/C++ 中使用 AVX2 的两个无符号字节 vector 的内积

python - Python 的 Numpy 相关错误

r - 按组划分的地理距离 - 在每对行上应用一个函数