2017-07-21 22 views
0

私は自分の距離を構築しています(d1と呼ぶ)。さて、距離を計算するためのマトリックスがあります。距離計算を改善する

# 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,]) 

    } 
} 

私は何回かこのプロセスを実装する必要があります。それぞれのサンプル、距離行列を取得するために書かれたコードのためのコンテンツを持つマトリックスとしてxを考慮すると、以下のです。だから、私は距離の行列wDMを埋めるためのより速い方法が2つのforループを使用するのではないかと思いました。

はあなたがproxy packageからdist()を使用することができ、そんなに

答えて

1

、ありがとうございました。それはパラメータmethod = #yourDistanceを設定することによってユーザ定義の距離関数を指定できるようになり、デフォルトはeuclideanになります。ここでドキュメントを確認してください:https://cran.r-project.org/web/packages/proxy/proxy.pdf

+0

ありがとうございます。 1つの問題のみ。私は問題の説明で 'd1'を2つのベクトルの関数として定義しましたが、それはまた第3定数変数(' d1(a、x1、x2) ')に依存します。 「? – R18

+0

私はあなたの行列に定数ベクトル 'a'として列を設定すると解決するはずです。 –

+0

'a'は10変数の重みベクトルです。私は重み付き距離を計算したいと思います。私はあなたの言うことを理解していません。 – R18