Получение пар координат в одном столбце?(Р) - PullRequest
0 голосов
/ 30 января 2019

Я играю с пакетом 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, но это просто отделяет пары координат x / y на противоположных концах df друг от друга:

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)
...

и т. Д.и т. д.

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Попробуйте использовать пакет 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  1
0 голосов
/ 30 января 2019

Проверяя

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
#   ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...