【发布时间】:2020-09-19 14:14:43
【问题描述】:
我想将城市名称合并为近似坐标。
我有两个数据集。
- 城市的经纬度,称为
cities。 - 观测事件的经纬度,称为
events。
大多数事件都发生在城市的经纬度之外。
如果经纬度最大 1 lat 和 lon 与 events 中列出的不同,我想从 cities 合并 city。
data.table 中的nearest 函数似乎过于粗糙。
你会怎么做?使用maptools?
例子:
cities <- data.table(city = c("A", "B", "C"),
lat = c(23.4, 43.5, 21.3),
lon = c(100, 98.4, -78.2))
events <- data.table(event = c("X1", "Y1", "B1"),
lat = c(24.4, 42.5, 23.3),
lon = c(101, 100.4, -78.2)))
result <- data.table(event = c("X1", "Y1", "B1"),
lat = c(23.4, 43.5, 21.3),
lon = c(100, 98.4, -78.2),
city = c("A", NA, NA))
> result
event lat lon city
1: X1 23.4 100.0 A
2: Y1 43.5 98.4 <NA>
3: B1 21.3 -78.2 <NA>
【问题讨论】:
标签: r merge data.table coordinates maptools