【发布时间】:2016-07-10 07:22:10
【问题描述】:
我不知道如何更好地表达它。这是我的问题。
一个非常简单的数据框,比如 --
df= {"time" "east" "north"
1 0 0
2 2 0
3 1 0
4 1 2
}
现在,我想在两个连续的时间范围(第一行除外)之间添加距离(作为另一列)。例如在time==2,距离应计算为sqrt( (2-0)*(2-0) + (0-0)*(0-0) )。可能的结果可能是这样的
df= {"time" "east" "north" "distance"
1 0 0 0
2 2 0 2
3 1 0 1
4 1 2 2
}
当然,我想有一种方法来获取从两行连续的东和北的距离并返回点之间的欧几里得距离。 1) 如何获得数据框中两个连续点之间的距离?
我想对大量数据帧的子集应用类似的操作或可配置的函数(距离、连续减法等)。最后我想绘制段,例如
index = length(df$time)-1
segments( df$time[index],df$time[index+1], df$distance[index], df$distance[index+1] )
2) 有没有更好的方法从连续点绘制线段?类似这样的指针也会非常有用。
【问题讨论】:
-
不清楚你需要什么。也许如果你包括预期的输出......
-
谢谢,我也添加了一个可能的输出。
-
根据你的计算,
with(df, sqrt((east-north)^2 + (lag(east)-lag(north))^2)),那么值会有所不同。
标签: r