【问题标题】:R code to separate co-ordinates in a sinle column into two columns of latitude and longitudeR代码将单列中的坐标分成纬度和经度两列
【发布时间】:2021-03-14 10:51:03
【问题描述】:

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

 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)


   

【问题讨论】:

    标签: r dplyr split tidyr


    【解决方案1】:

    这行得通吗:

    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
    

    【讨论】:

    • 这是完美的。假设我想添加另一列,这样就有一个具有公共 id 的额外列,这样我就可以得到输出 id
    • @SamMwenda,我已经更新了我的答案,请检查是否适合你。
    • 完美运行。你让研究变得有趣
    • @SamMwenda,谢谢,如果可行,请您“接受”答案
    猜你喜欢
    • 2012-02-03
    • 2021-12-11
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多