преобразовать dataframe в объект sf, используя уже отформатированный столбец геометрии - PullRequest
0 голосов
/ 02 июля 2019

У меня есть такой фрейм данных (dat), пока geom_transect является фактором. Я хотел бы преобразовать мой фрейм данных в объект sf, указав, что geom_transect является столбцом геометрии, но безуспешно. вот мой столик

rn   geom_transect
1   c(2.59301435154815, 51.0850974058788)
2   c(2.65908408179987, 51.120810848601)
3   c(3.33344625797791, 51.3620269560137)
4   c(4.36158333330571, 51.2919925240015)
5   c(4.11514955241717, 51.1308060725143)

Я пытался:

st_as_sf(as.numeric(as.character(dat$geom_transect)))

я получил следующее сообщение об ошибке:

Error in UseMethod("st_as_sf") : 
  no applicable method for 'st_as_sf' applied to an object of class "c('double', 'numeric')"
In addition: Warning message:
In st_as_sf(as.numeric(as.character(dat$geom_transect))) :
  NAs introduced by coercion

Я тоже пробовал:

st_point(is.numeric(dat$geom_transect))

Error in st_point(is.numeric(dat$geom_transect)) : 
  is.numeric(x) is not TRUE

любая помощь приветствуется, заранее спасибо!

1 Ответ

0 голосов
/ 03 июля 2019

Вы действительно поставили меня на трек, спасибо за это!Я подумал, что будет более простой способ, и я согласен, что я должен был хранить таблицу геометрии по-другому, но извлечение данных было длинным, и я не хочу перезапускать эту часть кода.

эточто я наконец сделал, чтобы получить координаты lon / lat:

dat$geom_transect <- as.character(dat$geom_transect)
dat$lon <- as.numeric(sapply(strsplit(dat$geom_transect, '[(,)]'), "[[", 2))
dat$lat <- as.numeric(sapply(strsplit(dat$geom_transect, '[(,)]'), "[[", 3))
...