2013-08-20 82 views
1

我有大量的數據幀,包括X和Y座標對,並且希望計算後續座標之間的歐幾里得距離(最小尺寸約爲2000對座標) - 因此,距離從行1至2,行2〜3,第3行至4等This question很好地示出了如何計算的第一和最後點軌跡數據之間的歐幾里德距離,但我的數據更接近:計算R中後續位置之間的歐幾里德距離

(A = c(0L,0L,0L,0L,0L,0L),T = 0:5,X = c(668L,670L,672L,674L,676L,678L),Y = c 259L,259L,260L),V = c(NA,0,0,0,0) Y「,」V「),row.names = c( NA,6L),class =「data.frame」)

似乎應該有一種方法來創建一個循環來做到這一點,但我不確定如何下標。使用dist()對於這個尺寸的數據集在計算上要求很高,並且無論如何,我也不確定如何從對角線中提取一次矩陣元素。

+0

你看了'sp'包? – Frank

回答

3

喜歡的東西

sqrt(diff(dff$X)^2 + diff(dff$Y)^2) 

應該工作。這裏的關鍵就是把差異功能,這給連續項之間的差異在矢量

1

另一種方法,只是爲了好玩:

sqrt(apply(apply(dff[,c("X","Y")], 2, diff)^2, 1, sum))