我是一个sf
包的初学者,我在将我的数据框转换为sf
对象时遇到了一些困难。
我的数据框中包含每行多边形的坐标。这些坐标在单个列中。
以下是我的数据框结构的示例:
dat <- tibble::tribble(
~code, ~geometry,
"MIE", list(c(1.24, 45), c(1.25, 45), c(1.25, 46), c(1.24, 45)),
"MIS", list(c(1.23, 44), c(1.23, 45), c(1.24, 45), c(1.23, 44))
)
我想从这个数据框中创建一个sf对象,但是R不能识别几何列。
我尝试了列表格式和函数,比如st_sf()
、st_geometry()
、st_polygon()
,但都没有成功。
尝试使用st_sf(dat)
返回:
st_sf(dat)
出现错误:
Error in st_sf(dat) : no simple features geometry column present
尝试使用st_polygon(dat$geometry)
返回:
Error in vapply(x, ncol, 0L) : values must be length 1,
but FUN(X[[1]]) result is length 0
有没有办法将我的数据框转换为sf
对象?
我正在使用版本为3.6.0的R
。
dput
)呈现,那么帮助您将更加容易。如果我们能够看到未能正常工作的代码——您如何尝试使用st_sf
?这也会更容易提供帮助。 - camillest_geometry(dat) <- st_sf(st_polygon(dat$geometry))
和dat.sf <- st_sf(dat)
。此外,我发现有时几何图形可以被两次包装在列表中,例如list(list(c(x1,y1),c(x2,y2)))
,但这并不会改变任何东西。我也尝试了st_sfc
,但我不确定它与st_sf
的区别... - ldavadan