R:将一个因子或字符串变量分成两个新变量

标签 r variables

大家好,我有一个数据框,其中有一列名为 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

将变量转换为字符串格式然后创建两个新列会更好吗?

最佳答案

实现此目的的最简单方法是使用 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)

关于R:将一个因子或字符串变量分成两个新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58543324/

相关文章:

r - 在 ggplot2 中嵌入图形

每个变量的 R 内存使用情况

c - C 中的 L 航站楼

php - 如何通过查询同一行中的另一个值来返回特定 mysql 单元格中的内容?

delphi - Delphi 中哪些变量被初始化?

latex - 如何确定 LaTeX 中给定文件路径的文件扩展名?

r - 获取可用数据框的列表

r - 无需专用端点的安全 ACI - 使用水管工和 R 的 docker 镜像

javascript - R Shiny DataTables 用字符串替换数字并按小于数字值排序

r - 似乎无法调整箱线图宽度