【发布时间】:2021-09-08 04:47:49
【问题描述】:
我想计算我的数据帧的纬度/经度位置之间的距离(以米为单位),但有以下限制: 1.- 只有相同 CLIENTID 的纬度/经度,但它们之间都相同。 2.- 为每个 CLIENTID 生成一个新的数据帧(并导出到 CSV o XLS)
我的数据存储为:
| CLIENT ID | HOUSE ID | LAT | LONG |
| 111111111 | xxx111 | xx.xx| xx.xx|
| 111111111 | xxx112 | xx.xx| xx.xx|
| 111111111 | xxx145 | xx.xx| xx.xx|
| 222222222 | xxx345 | xx.xx| xx.xx|
| 222222222 | xxx 666 | xx.xx| xx.xx|
我需要什么:
以 CLIENTID (CLIENTID.csv) 命名的 CSV 或 XLS 文件,内容如下:
| CLIENT ID | HOUSE ID1 | HOUSE ID 2| DISTANCE |
| 111111111 | xxx111 | xxx112 | 950 |
| 111111111 | xxx111 | xxx145 | 750 |
| 111111111 | xxx112 | xxx145 | 250 |
我尝试了一些链接,但我不知道如何解决它,因为我已经与计算机断开连接一年了 (COVID)
链接:
Calculating distance between two GPS locations in a data frame using distm () in R
Function to calculate geospatial distance between two points (lat,long) using R
编辑:添加数据
对不起,我的第一篇文章。我完全被屏蔽了,无法以适当的方式提问。
我已经组合了两个数据帧(leftjoin)以获得带有“Doc_titular”的 AAA_JOIN 数据帧
现在我的问题开始了:
1.- 从“Doc_titular”过滤,并从同一个“Doc_titular”中获取所有行
2.- 计算所有 LAT/LONG 之间的距离
3.- 将每个“Doc_titular”的数据存储在 CSV 中,所有 HouseID 距离均采用上述格式(Doc_titular; HouseId; HouseId(n); Meters)
以下是数据示例:
Doc_titular House_ID longitude latitude
26DF5756F AAA/BA/00145 -3.36715925514947 3.80089929185657
26DF5756F AAA/BA/00146 -3.36687508416913 3.80092746460019
26DF5756F AAA/BA/00733 -3.37604382639631 3.80126114282085
45GH7765B AAA/BA/00123 -3.36887798896237 3.80405033823961
45GH7765B AAA/BA/00498 -3.37077717656959 3.80121749925945
45GH7765B AAA/BA/00998 -3.79037050320006 3.77633839304628
45GH7765B AAA/BA/00332 -3.38064351196704 3.80099089206718
98TR2794P AAA/BA/00420 -3.36824907065489 3.80086791973886
98TR2794P AAA/BA/00557 -3.37255900917349 3.80107792023686
98TR2794P AAA/BA/00556 -3.36674589155523 3.8012204114931
98TR2794P AAA/BA/00040 -4.05181620512371 3.80137173136896
对不起,如果我发布一些基本的东西,但我不太擅长 R,而且今年我在计算机方面还很遥远。 提前致谢。
【问题讨论】:
-
如果您可以向我们提供可复制的minimal working example,我们可以复制和粘贴以更好地了解问题并测试可能的解决方案,这将很有帮助。您可以使用
dput(YOUR_DATASET)共享数据集,或者使用dput(head(YOUR_DATASET))共享较小的样本。 (请参阅 this answer 以获得一些很好的建议。)