【发布时间】:2015-04-15 04:03:47
【问题描述】:
我想计算纬度/经度坐标的行对之间的距离。这可以通过 earth.dist 等各种函数轻松完成。我被困的地方是我希望这成为每晚数据质量检查过程的一部分,其中对的数量会发生变化。每行都是唯一的主题/人。有时,一些受试者可能有四组坐标,有时最大的可能是三组。有没有一种优雅的方式来执行这个计算,例如,所有可能的组合:
combn(geototal, 2])
,其中 geototal 是给定日期的坐标集数,例如x = 4 对于集合:
latitude.1, longitude.1, latitude.2, longitude.2, latitude.3, longitude.3 latitude.4, longitude.4.
我当前的循环看起来像这样,但当然错过了许多可能的组合,尤其是。当 X 大于 4 时。
x = 1; y = 2
while(x <= geototal)
{
if (y > geototal) break;
eval(parse(text = sprintf("df$distance%d_%d = earth.dist(longitude.%d,latitude.%d,longitude.%d,latitude.%d)", x, y, x, x, y, y)));
x <- x + 1;
y <- y + 1;
}
感谢您对此的任何想法!
【问题讨论】: