Ich muss eine Abstandsmatrix aus einer Matrix erstellen, die den Abstand zwischen den Spalten zurückgibt.Erstellen einer Abstandsmatrix in R (ohne dist() zu verwenden)
Ich weiß,, dass es eine Funktion namens dist() existiert, aber ich kann es nicht verwenden, weil ich nicht gemeinsame Distanzfunktionen verwenden werde.
Ich dachte über die Anwendung, aber ich weiß nicht, wie man es schreibt.
Die Schleife ich geschaffen habe, ist:
apply(df, 1, dist)
zu verwenden:
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
}
Können Sie ein Beispiel für Ihre Datenspalten und Ihre erwartete Ausgabe veröffentlichen? Vielleicht ist sogar der Schleifencode, den du geschrieben hast, langsam? – Gopala
Mehr Details würden helfen. –
Ich habe gerade die Schleife geschrieben, meine Matrix ist 129569Rows x 60columns – cdom