如何在dataframe中定位地图上异常点对应的数据集?
快速定位异常坐标数据的方法
过滤超出地理范围的坐标
地球纬度范围是[-90, 90],经度范围是[-180, 180],直接筛出不在这个区间的行:# 假设你的纬度列名为lat,经度列名为lon outliers <- df %>% filter(lat < -90 | lat > 90 | lon < -180 | lon > 180)图中那些跑到地图外的点大概率属于这类。
用交互式可视化直接查看
把ggplot图转成交互式的,鼠标悬停就能看到点对应的详细数据,还能框选异常点导出:library(plotly) # 替换成你自己的ggplot绘图代码 p <- ggplot(df, aes(x=lon, y=lat)) + geom_point() + borders("world") ggplotly(p) %>% layout(hovermode = "closest")打开交互式图后,找到异常点悬停看信息,或者用框选工具选中后导出对应数据。
检查坐标是否颠倒
很多异常是把纬度和经度搞混了,比如把经度值放到纬度列。可以筛出这类疑似颠倒的行:# 筛选经度绝对值≤90、纬度绝对值>90的行(符合颠倒特征) reversed_coords <- df %>% filter(abs(lon) <= 90 & abs(lat) > 90)按分类分组排查
如果数据有分类列(比如国家、地区),按分类分组计算坐标均值,定位均值明显偏离实际位置的分组,再深入查看该组数据:# 假设分类列名为region group_avg <- df %>% group_by(region) %>% summarise(avg_lat = mean(lat), avg_lon = mean(lon)) # 筛选均值异常的分组 filter(group_avg, avg_lat < -60 | avg_lat > 80 | avg_lon < -150 | avg_lon > 150)
内容的提问来源于stack exchange,提问作者Mona Becher
相关产品推荐
相关产品推荐

