【发布时间】:2017-05-23 22:22:55
【问题描述】:
我的数据框中有一列包含邮政编码、纬度和经度
位置
"10007 (40.71363051943297, -74.00913138370635)"
"10002 (40.71612146793143, -73.98583147024613)"
"10012 (40.72553802086304, -73.99789641059084)"
"10009 (40.72664935898081, -73.97911148500697)"
我需要将它们分成三个不同的列,例如邮政编码、纬度和经度。
我尝试过这样做
extract(Location, c("Zip-Code","Latitude", "Longitude"), "\\(([^,]+), ([^)]+)\\)")
我想用经纬度用ggmap绘制地图
谢谢
【问题讨论】:
-
试试
library(tidyr); separate(df1, Location, into = c("Zip_Code", "Latitude", "Longitude"), sep=",*\\s+\\(*|\\)", merge="extra") -
它的不同行不在同一行,我试过你的解决方案“它说列规范无效”
-
我的意思是 10007 和 (40.71363051943297, -74.00913138370635)" 在下一行还是同一行?我的解决方案是基于
"10007 (40.71363051943297, -74.00913138370635)"的假设 -
unlist(strsplit(xxx, "(,|\\(|\\))"))应该会有所帮助。然后从中提取第一个、第三个和第四个 -
不应该
separate的参数是extra="merge"(或extra="drop")而不是merge="extra"?
标签: r dataframe r-markdown ggmap