我正在尝试使用数据框和sf库从事件列表中获取一些坐标并将其转换为要映射的shapefile。有些行缺少lat / long,当我使用st_as_sf函数时,由于缺少coords而失败。数据来自csv中的外部源,虽然我试图修剪缺少信息的行(转到sql并返回到csv),但是文档的格式似乎不一致所以它会移动一些行而我遇到了同样的问题。无论如何在r中修剪缺少特定列(lat,long)的数据帧还是在创建数据帧以省略这些列时?我想我可以循环检查并检查,但想知道是否有更好的方法?谢谢!
答案 0 :(得分:0)
我们假设您有一个数据框,坐标存储在名为' lat'和' lng'。
df <- data.frame(lat = c(NA, 2, 2), lng = c(NA, 1, NA))
过滤掉任何遗失的坐标:
df <- df[which(!is.na(df$lat) & !is.na(df$lng)),]
转换为sf:
sf.df <- st_as_sf(df, coords = c('lat', 'lng'))
您还应该使用st_as_sf()
中的crs参数设置数据的投影