У меня есть большой фрейм данных со столбцом, называемым геометрией.
> class(df$geometry)
[1] "sfc_MULTIPOLYGON" "sf c"
Столбец выглядит например:
head(df$geometry)
Geometry set for 6 features
geometry type: MULTIPOLYGON
dimension: XY
bbox: xmin: -157.9813 ymin: 56.73044 xmax: -152.267 ymax: 58.93569
epsg (SRID): 4269
proj4string: +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs
First 5 geometries:
MULTIPOLYGON (((-157.973 56.74355, -157.9727 56...
MULTIPOLYGON (((-157.5293 57.61359, -157.5293 5...
MULTIPOLYGON (((-152.268 57.62401, -152.2674 57...
MULTIPOLYGON (((-157.5457 58.86262, -157.5449 5...
MULTIPOLYGON (((-156.3857 58.88877, -156.3849 5...
Я знаю, что могу получить доступ к вектору чисел c широты, например, копаясь в списках списков, то есть:
head(df$geometry[[1]][[1]][[1]][,1])
[1] -157.9730 -157.9727 -157.9721 -157.9716 -157.9708 -157.9707
I просто нужно извлечь min и max lat и lon для каждой строки и сделать каждый столбец (таким образом, добавляя четыре столбца к фрейму данных: lat_min, lat_max, lon_min, lon_max).
Я пробовал несколько вариантов - в том числе комбинации st_coordinates (), st_bbox (), unlist, но, похоже, это не отображается для всех строк. Пожалуйста, помогите.
пакеты: dpylr, tidyverse, tidyr, sf