簡體   English   中英

R比較特征以創建距離矩陣

[英]R comparing features to create matrix of distances

我有一個R問題。 我有一個算法可以做到這一點,但我想知道是否有更巧妙的方法可以做到以下幾點:

假設您具有以下矩陣:

        [,1] [,2] [,3] [,4] [,5]
[A,]    0    0    0    0    1
[B,]    0    0    0    1    1
[C,]    0    0    1    1    1
[D,]    0    0    1    1    0
[E,]    1    0    0    0    0
[F,]    1    1    1    0    0

現在,我想創建另一行,將每一行與另一行之間的差異矩陣(即距離矩陣)類似(盡管我將其填充一半,但它只是獲得頂部的鏡像):

       [,A] [,B] [,C] [,D] [,E] [,F]
[A,]    0     
[B,]    1    0     
[C,]    2    1    0     
[D,]    3    2    1    0    
[E,]    2    3    4    3    0
[F,]    4    5    4    3    2    0

我的方法是使用一個循環,將每一行的列與下面的行的相應列進行比較,但是使用較大的矩陣效率不高。 關於如何做得更好的任何想法?

謝謝

如在使用distmanhattan方法的評論中所說:

dt <- read.table(text='     [,1] [,2] [,3] [,4] [,5]
[A,]    0    0    0    0    1
[B,]    0    0    0    1    1
[C,]    0    0    1    1    1
[D,]    0    0    1    1    0
[E,]    1    0    0    0    0
[F,]    1    1    1    0    0')

mm <- as.matrix(dt)
dist(mm,method='manhattan' ,diag=TRUE)

      [A,] [B,] [C,] [D,] [E,] [F,]
[A,]    0                         
[B,]    1    0                    
[C,]    2    1    0               
[D,]    3    2    1    0          
[E,]    2    3    4    3    0     
[F,]    4    5    4    3    2    0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM