2016-07-27 26 views
0

我有一個向量列表,我試圖使用自定義距離度量來計算它們之間的距離矩陣。但是我不知道的最好的方式去了解它:來自載體列表的外部產品R

distance.function<-function(x,y){ 
    return(x %*% y) 
} 
m<-1:4 
values<-list(m,m,m,m,m) 

我想要的是返回的東西,如:

outer(values, values, FUN='distance.function') 
     [,1] [,2] [,3] [,4] 
[1,] 30 30 30 30 
[2,] 30 30 30 30 
[3,] 30 30 30 30 
[4,] 30 30 30 30 

我一直在使用outer嘗試,但它似乎沒有不像輸入是向量,我試過combn,但似乎無法將輸出轉換爲所需的格式。理想情況下,我只能在矩陣的上三角形中進行積分。

回答

0

看來,這其實只是一個使用Vectorize的事情:

m<-1:4 
x<-list(m,m,m,m,m) 
mini.test<-function(x,y){ 
    dot.prod <- x %*% y 
    return(dot.prod) 
} 
outer(x, x, Vectorize(mini.test)) 

    [,1] [,2] [,3] [,4] [,5] 
[1,] 30 30 30 30 30 
[2,] 30 30 30 30 30 
[3,] 30 30 30 30 30 
[4,] 30 30 30 30 30 
[5,] 30 30 30 30 30 

感謝幫助解決這個鏈接here