首页 > 解决方案 > 从数据框中删除特定列缺少数据的行

问题描述

我正在尝试使用数据框和 sf 库从事件列表中获取一些坐标并将其转换为要映射的 shapefile。有些行缺少纬度/经度,当我使用 st_as_sf 函数时,由于缺少坐标而失败。数据来自 csv 中的外部源,尽管我尝试修剪缺少信息的行(转到 sql 并返回 csv),但文档的格式似乎不一致,因此它移动了一些行,我也遇到了同样的问题。无论如何,r 中是否有修剪缺少特定列(纬度、经度)的数据框,或者在创建数据框以省略这些列时?我想我可能可以循环并根据需要进行检查,但想知道是否有更好的方法?谢谢!

标签: rdataframesf

解决方案


假设您有一个数据框,并且坐标存储在名为“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 参数设置数据的投影


推荐阅读