r - 计算两点之间所有可能的斜率
问题描述
我有两个向量
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 中有效地做到这一点(我需要运行多次,所以效率在这里非常重要)
解决方案
如果您需要点数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]
我没有使用combn
R 核心的功能。有关案例研究,请参阅向量元素的所有组合之间的乘积。
推荐阅读
- python - 了解 Python 3.7 中类、namedtuple 和 __slots__ 的大小
- vba - Word 宏:在分节符后设置页面方向
- xcode - Mac OS X 应用程序的位置授权警报中显示不正确的应用程序名称
- c# - 由于与 .NETFramework 的兼容性问题,无法安装包 xxx
- javascript - 为什么我会收到这个意外的字符串错误?
- java - 使用 Java 套接字读取 IP 层标头
- c# - Web Socket 在信号器核心上不可用?
- ios - UIView 阴影故障
- jenkins - Jenkins git插件使用bitbucket获取状态码128
- html - Firefox 打印页面 - 白色字体颜色覆盖为较深的颜色