如何为合并后的projects数据框按Zip Code添加经纬度均值列?
解决方案
1. 提取坐标并添加到数据框
首先,将st_coordinates返回的X(经度)和Y(纬度)值作为临时列添加到projects数据框中:
library(dplyr) library(sf) # 为数据框添加原始经度、纬度列 projects <- projects %>% mutate( lon = st_coordinates(.)[, "X"], lat = st_coordinates(.)[, "Y"] )
2. 按邮政编码计算平均经纬度并添加列
按邮政编码分组,计算每组的平均经纬度,然后将均值作为新列添加回数据框(同一邮政编码的所有行将共享相同的均值):
# *请将"zip_code"替换为你数据框中实际的邮政编码列名* projects <- projects %>% group_by(zip_code) %>% mutate( avg_longitude = mean(lon, na.rm = TRUE), avg_latitude = mean(lat, na.rm = TRUE) ) %>% ungroup()
可选操作
如果不需要保留原始的lon和lat临时列,可以用以下代码移除:
projects <- projects %>% select(-lon, -lat)
内容的提问来源于stack exchange,提问作者Nader Mehri
相关产品推荐
相关产品推荐

