r - R:将一个因子或字符串变量分成两个新变量
问题描述
大家好,我有一个数据框,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)
推荐阅读
- maven - 带有多个标签的 -Dcucumber.options 的 Maven 配置文件错误
- sql - 如何使用like/rlike过滤掉两边有空格的字符串
- php - PHP 5 | 通过引用/值传递的对象与写入时复制 | 添加为类属性时
- .net - 从 64 位 .NET 与 32 位访问进行通信
- node.js - IBM Cloud Functions:如何在 Node.js 中安装“ibm_db”以进行无服务器 Db2 访问?
- javascript - 我如何使用 z-index 来模拟通过四连接板掉落的芯片以赋予其 3d 效果?
- php - 尝试在 Wordpress 中显示自定义文件夹中的图像时出现错误 404
- python - 根据 2 个条件从数据框中删除行
- selenium - 指定了主机标头或源标头,并且不是 selenium 网格的 localhost
- python - 如何获得正在运行的特定(活动)类