我需要从一个矩阵中创建一个距离矩阵,该矩阵返回列之间的距离。
我知道存在一个名为dist()的函数,但我不能使用它,因为我将使用不常见的距离函数。
我想使用apply,但我不知道如何编写。
我创建的循环是:
dista <- function(A,distance){
dist_matrix=matrix(0,dim(A)[2],dim(A)[2])
for (i in 1:(dim(A)[2]-1)){
for(j in (i+1):(dim(A)[2])){
if(distance=='cosine') dist_matrix[j,i]<- (1-sum(A[,i]*A[,j]))/(sqrt(sum(A[,i]^2))+sqrt(sum(A[,j]^2)))
}
}
dist_matrix
}