我在玩弄concaveman包。
我正在使用这个示例代码在一些测试点周围创建一个凹面外壳的多边形:
library(concaveman)
data(points)
polygons <- concaveman(points)
plot(points)
plot(polygons, add = TRUE)但是,多边形df将所有坐标都塞到一行中,如下所示:
polygons
1
list(c(-122.0809, -122.0813, -122.0812, -122.082, -122.0819, -1...我尝试使用unlist,但这只是将df两端的x/y坐标对彼此分开:
fixpolygon <- data.frame(unlist(polygons))输出:
polygons1 -122.0809
polygons2 -122.0813
polygons3 -122.0812
...
polygons210 37.3736
polygons211 37.3764
polygons22 37.3767如何才能使输出结果如下所示:
c(-122.0809, 37.3736)
c(-122.0813, 37.3764)
...等等,等等?
发布于 2019-01-31 02:39:35
通过检查
str(polygons)我们可以看到,您想要的东西已经在
polygons$polygons[[1]][[1]]
# V1 V2
# [1,] -122.0809 37.3736
# [2,] -122.0813 37.3764
# [3,] -122.0812 37.3767
# [4,] -122.0820 37.3772
# [5,] -122.0819 37.3792
# [6,] -122.0822 37.3792
# ...发布于 2019-01-31 02:39:43
尝试使用sf包:
library(sf)
st_coordinates(st_as_sf(polygons)) X Y L1 L2
[1,] -122.0809 37.3736 1 1
[2,] -122.0813 37.3764 1 1
[3,] -122.0812 37.3767 1 1
[4,] -122.0820 37.3772 1 1
[5,] -122.0819 37.3792 1 1
[6,] -122.0822 37.3792 1 1https://stackoverflow.com/questions/54447325
复制相似问题