我之前曾询问过在 R 中计算欧几里得距离并获得了很大帮助。现在,我需要计算从第一个点到轨迹数据中所有其他点的欧几里得距离。这是我的数据的样子:
dput(head(t1))
structure(list(A = c(0L, 0L, 0L, 0L, 0L, 0L), T = 0:5, X = c(668L,
668L, 668L, 668L, 668L, 668L), Y = c(259L, 259L, 259L, 259L,
259L, 259L), V = c(NA, 0, 0, 0, 0, 0)), .Names = c("A", "T",
"X", "Y", "V"), row.names = c(NA, 6L), class = "data.frame")
SimonO101 非常棒地给了我一个代码,该代码将计算每条轨道从起始位置到最终位置的欧几里得距离:
## Split the data
dfs <- split(t1,t1$A)
## Find hypotenuse between first and last rows for each A
lapply( dfs , function(x){
j <- nrow(x)
str <- x[1,c("X","Y")]
end <- x[j,c("X","Y")]
dist <- sqrt( sum( (end - str)^2 ) )
return( dist )
} )
如何编辑代码,使其不仅具有从开始到结束的欧几里得距离,而且从每个 X、Y 位置开始?再次感谢!
编辑:还有:如何将结果可视化为矩阵。谢谢