rdist
x 座標と y 座標の 2 つのベクトル間のすべてのユークリッド距離の行列をうまく計算します。
ただし、rdist
いくつかの比較のみが必要な場合は、必要以上の出力を提供できるすべてのものを比較したいと考えています。例えば
df <- data.frame(x1=c(0,0),y1=c(0,0),x2=c(0,2),y2=c(0,0))
# df
# x1 y1 x2 y2
# 1 0 0 0 0
# 2 0 0 2 0
# where (x1,y1) are vectors for the first points and (x2,y2) are
# vectors for the second points. We want distances between points 1 and
# points 2 for each row
同じ行にあるその嘘とだけ比較x1,y1
したい場合は、次の方法がキラーです。x2,y2
library(fields)
rdist(cbind(c(df[,1],df[,3]),c(df[,2],df[,4])))
だから私の質問は、これを達成するための最良の方法は何ですか? 私は考えることができます:
library(fields)
df <- data.frame(x1=c(0,0,0,5),y1=c(0,0,0,3),x2=c(0,2,3,6),y2=c(0,0,0,9))
results <- apply(df,1,function(x) rdist(cbind( c(x[1],x[3]),c(x[2],x[4]))))
次に、距離として 2 列目または 3 列目を盗みresults
ます...