r - R 中的成对运算

标签 r

我需要计算每个日期变量的成对连续相关性(我的数据集中有 246 个):

Company   2009/08/21      2009/08/24       2009/08/25
A       -0.0019531250   -0.0054602184    -6.274510e-03
AA      -0.0063291139   -0.0266457680    -1.750199e-02
AAPL     0.0084023598   -0.0055294118    -1.770643e-04 ...
...

这样我就可以找到cor(col1,col2)、cor(col2,col3),但找不到cor(col1,col3)。我意识到,如果我想要所有组合,我可以使用 commn 函数,但我不知道如何在没有像 for 循环这样低效的情况下针对我的情况执行此操作。

最佳答案

方法 1 你可以这样做:

lapply(1:(ncol(dat)-1), function(i) cor(dat[, i], dat[, i+1],   
   use="pairwise.complete.obs"))

示例 包含 10 个变量的数据框将为您提供 9 个连续相关性,即第 1-2、2-3、3-4 列等(如果您想要的话)。

dat <- replicate(10, rnorm(10))
lapply(1:(ncol(dat)-1), function(i) 
    cor(dat[, i], dat[, i+1], use="pairwise.complete.obs"))

方法 2(非常简洁)

同时使用 iris 数据集:

dat <- iris[, 1:4]

diag(cor(dat, use="pairwise.complete.obs")[, -1])
[1] -0.1175698 -0.4284401  0.9628654

关于r - R 中的成对运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21170476/

相关文章:

r - 如何使用R的遗传算法来优化支持向量机的参数

r - 开发引用 n-1 行的更有效的 for 循环

regex - 提取正则表达式匹配

r - 如何在 dplyr 中使用 map2() 改变() 列列表

javascript - 如何使图像可单击以显示子集 Dataframe ? (R Shiny )

R corrplot 裁剪底轴标签

r - R中的对数刻度箱图

r - ggplot 中的特殊变量(..count..、..密度..等)

r - 可以在 roxygen2 代码块中使用换行符吗?

r - `prop.table()` 函数在 r 中如何工作?