У меня есть df с идентификаторами полигонов из шейп-файла и их центральными точками в столбце геометрии:
# A tibble: 3 x 2
ID geometry
<dbl> <POINT [°]>
1 1 (117.2 31.8)
2 2 (116.4 40.1)
3 4 (117.9 26)
Я хочу поместить значения широты / долготы в отдельные столбцы, поэтому я делаю:
library(sf)
centres<- as.data.frame(st_coordinates(df))
Этот новый фрейм данных 'центров' имеет значения lat и long, но пропускает столбец ID.Как я могу сохранить его, или есть другой способ получить значения lat & long в отдельные столбцы из столбца геометрии, сохраняя идентификатор в том же df?
dput для кадра данных:
df <- structure(list(ID = c(1, 2, 4),
geometry = structure(list(structure(c(117.2, 31.8),
class = c("XY", "POINT", "sfg")), structure(c(116.4, 40.1),
class = c("XY", "POINT", "sfg")), structure(c(117.9, 26.0),
class = c("XY", "POINT", "sfg"))), class = c("sfc_POINT", "sfc"),
precision = 0, bbox = structure(c(xmin = 116.4, ymin = 26.0, xmax = 117.9, ymax = 40.1),
class = "bbox"), crs = structure(list(epsg = 4326L,
proj4string = "+proj=longlat +datum=WGS84 +no_defs"), class = "crs"), n_empty = 0L)),
row.names = c(NA, -3L), class = c("sf", "tbl_df", "tbl", "data.frame"),
sf_column = "geometry", agr = structure(c(ID = NA_integer_),
class = "factor", .Label = c("constant", "aggregate", "identity")))