首页 > 解决方案 > R中更快的“外部”实现

问题描述

我试图在 R 中使用 outer() 函数通过成对评估维度为 n 的向量中的元素来创建矩阵。具体来说,设 x 为 n 维向量,我想比较 x 的每一对元素。为此,我使用了以下使用 outer() 函数的简单实现。

# these codes are example

n <- 500
x <- rnorm(n) 
f <- function(x, y){
  as.numeric(x<y)+0.5*as.numeric(x==y)
}
#new.mat <- outer(seq_len(n), seq_len(n), f) this was posted wrongly
new.mat <- outer(x, x, f)  # edited

当 n 增加时,这种实现非常慢,我想知道一种有效的方法来完成这项工作。如果你向我介绍你的把戏,我真的很感激。

谢谢,
阿勒穆

标签: r

解决方案


推荐阅读