2016-03-22 39 views
3

私は座標と長さが異なる2つのデータフレームを持っています。最初の日付フレームの各点(たとえば2点)から2番目のデータフレームのすべての点までユークリッド距離を計算しようとしています4点):ユークリッド距離を計算するR

結果:

i=1 
for (i in dim(coordinates)[1]) { 
    result[i]<- 
    sqrt((coordinates[i,1] - reference[,1])^2 + 
    (coordinates[i,2] - reference[,2])^2 + 
    (coordinates[i,3] - reference[,3])^2) 
}   
:これは私のスクリプトは

point[1] dist1, dist2, dist3, dist4 

point[2] dist1, dist2, dist3, dist4 

です

しかし、それだけで最後の点からの距離を返します(ポイント[2]) 私はスクリップの??を修正することができますどのように、任意のヘルプは、私はこの間違いのすべての時間を作る事前

答えて

1

おかげで素晴らしいことです。 dimは単一の数値を返しますので、ループする必要があります。dimからループする必要があります。

シーケンス1:dim(coordinates)[1]を使って2番目の行をループしました。

i=1 
for (i in 1:dim(coordinates)[1]) { 
    result<- 
    sqrt((coordinates[i,1] - reference[,1])^2 + 
    (coordinates[i,2] - reference[,2])^2 + 
    (coordinates[i,3] - reference[,3])^2) 
} 

今、あなたは自分の結果ベクトルは二つのスロットを持っていることを確認する必要があります。それがうまくいかなければ、最初にこれを入れてください。

result <- rep(NA, 1:dim(coordinates)[1]) 
+0

Jajajaja、ありがとう、ありがとう、クリス、ありがとう、私はそれを見ていない。ありがとう – Jose

+0

ええ、私は最初に結果を入れました、間違いは1:dim(座標)[1]でした。おかげでクリスは私をたくさん助けます – Jose

+0

問題はありません –

関連する問題