首页 > 解决方案 > 计算两点之间所有可能的斜率

问题描述

我有两个向量

x <- rnorm(100)
y <- rnorm(100)

我需要计算所有点之间的斜率(公式:y2 - y1/ x2 - x1)。所以我需要点(x1, y1)(x1, y2)(x1, y1)(x1, y3)...,(x2,y2)和(y2,y3)等之间的斜率。总的来说,它将是choose(n, 2)斜率。

如何在 R 中有效地做到这一点(我需要运行多次,所以效率在这里非常重要)

标签: rperformance

解决方案


如果您需要点数choose(n, 2)之间的斜率,请使用n(x, y)

xy <- cbind(x, y)
library(RcppAlgos)
ind <- comboGeneral(nrow(xy), 2)
d <- xy[ind[, 2], ] - xy[ind[, 1], ]
slope <- d[, 2] / d[, 1]

我没有使用combnR 核心的功能。有关案例研究,请参阅向量元素的所有组合之间的乘积。


推荐阅读