改善距离计算

时间:2017-07-21 07:41:36

标签: r performance loops distance

我建立了自己的距离(让我们称之为d1)。现在,我有一个矩阵,我需要计算距离。将x视为具有每个样本内容的矩阵,为获得距离矩阵而编写的代码如下:

# Build the matrix
  wDM <- matrix(0, nrow=nrow(x), ncol=nrow(x))

# Fill the matrix
  for (i in 1:(nrow(wDM)-1)){
    for (j in (i+1):nrow(wDM)){

    wDM[i,j] <- wDM[j,i] <- d1(x[i,], x[j,])

  }
}

我必须多次实施这个过程。所以,我想知道是否有更快的方法来填充距离矩阵wDM而不是使用两个for循环

非常感谢你,

1 个答案:

答案 0 :(得分:1)

您可以使用dist()中的proxy package。它允许您通过设置参数method = #yourDistance默认为euclidean来指定用户定义的距离函数。请查看此处的文档:https://cran.r-project.org/web/packages/proxy/proxy.pdf