R: разделить множитель или строковую переменную на две новые переменные - PullRequest
3 голосов
/ 24 октября 2019

Привет всем, у меня есть фрейм данных со столбцом the_geom_OBJECTID, который представляет факториальную переменную.

                               the_geom_OBJECTID 
                                           <fct>
1   POINT  (-73.8472005205491 40.89470517661004) 
2  POINT  (-73.82993910812405 40.87429419303015) 
3  POINT  (-73.82780644716419 40.88755567735082) 
4 POINT  (-73.90564259591689 40.895437426903875) 
5  POINT  (-73.91258546108577 40.89083449389134) 
6  POINT  (-73.90281798724611 40.88168737120525)

Я хотел бы заменить столбец этого фрейма данных на два столбца, один для долготыи другой для широты

ожидаемый результат:

           longitude            latitude
               <dbl>               <dbl>
1  -73.8472005205491   40.89470517661004
2 -73.82993910812405   40.87429419303015
3 -73.82780644716419   40.88755567735082
4 -73.90564259591689  40.895437426903875
5 -73.91258546108577   40.89083449389134
6 -73.90281798724611   40.88168737120525

было бы лучше преобразовать переменную в строковый формат, чтобы затем создать два новых столбца?

1 Ответ

1 голос
/ 24 октября 2019

Самый простой способ добиться этого - использовать sf :: st_coordinates ():

sf::st_coordinates(the_geom_OBJECTID)

Обновление:

Сначала преобразуйте фрейм данных в объект sf.

library(sf)

df <- data.frame(the_geom_OBJECTID = c("POINT  (-73.8472005205491 40.89470517661004)", 
                                       "POINT  (-73.82993910812405 40.87429419303015)", 
                                       "POINT  (-73.82780644716419 40.88755567735082)", 
                                       "POINT  (-73.90564259591689 40.895437426903875)", 
                                       "POINT  (-73.91258546108577 40.89083449389134)", 
                                       "POINT  (-73.90281798724611 40.88168737120525)"))

df_sf <- st_sf(st_as_sfc(df$the_geom_OBJECTID))

Тогда:

sf::st_coordinates(df_sf)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...