将元素成对粘贴在一起

时间:2016-04-06 13:06:21

标签: r lapply

我们说我有两个向量和一个如下所示的距离矩阵

v1 = sample(c(0,1),5,replace=TRUE)
v2 = sample(c(0,1),5,replace=TRUE)
d = matrix(rep(1,5*5),ncol=5)
diag(d) <- 0

使用下面的功能我计算距离

如何将它们粘贴在一起

1 个答案:

答案 0 :(得分:1)

这是第一次尝试删除内部循环并使用vector2进行vector2乘法和求和:

  f_d_categorical2 <- function(vector1, vector2, dist.matrix) {
  ptm <- proc.time()
  dist <- 0
  for (i in 1:length(vector1)) {
      dist <- dist + sum(vector1[i]*vector2*dist.matrix[i,])
  }
  print(proc.time()-ptm)
  return(dist)
}

处理时间从1.8秒到0.03秒。我相信还有改进的空间和额外的测试用例。