我建立了自己的距离(让我们称之为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循环。
非常感谢你,
答案 0 :(得分:1)
您可以使用dist()
中的proxy package
。它允许您通过设置参数method = #yourDistance
默认为euclidean
来指定用户定义的距离函数。请查看此处的文档:https://cran.r-project.org/web/packages/proxy/proxy.pdf