首页 > 解决方案 > R代码将单列中的坐标分成纬度和经度两列

问题描述

我将这些数据放在一个称为坐标的列中。

 coordinates                                                                           
  <chr>                                                                         
35.9289842120708,-0.37401629584697;35.9295981311974,-0.370106682789026

我希望将其分成两列 lat 和 long 以便我的最终输出看起来像这样

lat<-c(35.92898,35.92960)
lon<-c(-0.3740163,-0.3701067)
final<-data.frame(lat,lon)


   

标签: rdplyrsplittidyr

解决方案


这是否有效:

library(dplyr)
library(tidyr)
library(stringr)
df %>% transmute(id = row_number(), lat = str_extract_all(coordinates, '\\d{2}\\.\\d+'), lon = str_extract_all(coordinates,'-\\d\\.\\d+')) %>% unnest(cols = everything())
# A tibble: 2 x 3
     id lat              lon               
  <int> <chr>            <chr>             
1     1 35.9289842120708 -0.37401629584697 
2     1 35.9295981311974 -0.370106682789026
 

使用的数据:

df
                                                             coordinates
1 35.9289842120708,-0.37401629584697;35.9295981311974,-0.370106682789026

推荐阅读