Вернуть полные случаи sf объекта в R - PullRequest
0 голосов
/ 04 сентября 2018

Что эквивалентно 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 голосов
/ 05 сентября 2018

Вы можете использовать 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)
0 голосов
/ 05 сентября 2018

У меня нет набора данных с отсутствующими геометриями, чтобы проверить это, но может быть что-то вроде:

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

Проверяет, есть ли какие-либо элементы NA в геометрии. Полученный вектор можно использовать для индексации фрейма данных и удаления пропущенных записей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...