我有两个向量
x <- rnorm(100)
y <- rnorm(100)
我需要计算所有点之间的斜率(公式:y2 - y1/x2 - x1)。所以我需要点 (x1, y1)
和 (x1, y2)
、(x1, y1)
和 ( x1, y3)
...、(x2, y2) 和 (y2, y3) 等。总共将是选择(n, 2)
斜率。
如何在 R 中有效执行此操作(我需要运行多次,因此效率在这里非常重要)
最佳答案
如果您需要在 n
个 (x, y)
点之间选择(n, 2)
斜率,请使用
xy <- cbind(x, y)
library(RcppAlgos)
ind <- comboGeneral(nrow(xy), 2)
d <- xy[ind[, 2], ] - xy[ind[, 1], ]
slope <- d[, 2] / d[, 1]
我没有使用 R 核心的 combn
函数。请参阅Product between all combinations of a vector's elements进行案例研究。
关于r - 计算两点之间所有可能的斜率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52152542/