返回R中sf对象的完整情况

时间:2018-09-04 20:43:27

标签: r unique distinct sf

df <- df[complete.cases(df), ]个对象的sf等于什么?

我知道sf对象的行为基本上与带有“粘滞” geometry列的数据帧类似,但是运行上面的代码将返回以下错误:

df <- df[complete.cases(df), ]

Error in complete.cases(df) : invalid 'type' (list) of argument

这可能是由于sf个对象将其geometry变量存储为列表。感谢您的输入!

2 个答案:

答案 0 :(得分:3)

您可以使用sf::st_is_empty()检查空的几何形状

library(sf)

pt1 <- sf::st_sfc(sf::st_point())
pt2 <- sf::st_sfc(sf::st_point(c(0,0)))

sf <- sf::st_sf(geometry = c(pt1, pt2))

sf[!sf::st_is_empty(sf), ]

# imple feature collection with 1 feature and 0 fields
# geometry type:  POINT
# dimension:      XY
# bbox:           xmin: 0 ymin: 0 xmax: 0 ymax: 0
# epsg (SRID):    NA
# proj4string:    NA
# geometry
# 1 POINT (0 0)

答案 1 :(得分:0)

我没有缺少几何形状的数据集来进行测试,但是也许像这样:

lapply(sfd$geometry, function(x) any(is.na(x)))

将检查几何中是否有任何NA元素。您可以使用生成的向量来索引数据框并删除丢失的条目。