【发布时间】:2016-06-25 00:25:08
【问题描述】:
我正在尝试从原始数据集中提取纬度和经度。我感兴趣的信息总是遵循相同的模式,即:
(,)(0-9)([.])(0-9) space (0-9)([.])(0-9)(,)
当我执行以下操作时,我可以准确地删除我想要保留的信息。有没有办法做相反的事情并实际使用 gsub 保留我目前正在删除的信息?
data$l1<-gsub('(,)([0-9]+)([.])([0-9]+)[ ]([0-9]+)([.])([0-9]+)(,)',
'\\2\\3\\4\\5\\6\\7',
data$V1)
数据集如下所示:
V1
60346241,[37.55 55.22 5km],katekin,55.745011917 37.604520766,2013-12-04 11:59:07
603423423,[37.55 55.22 5km],#hello,#yes,miguel,53.23452 38.7379422,2013-12-04 11:49:09
所以,在本例中,我想生成一个新变量 V2,即
V2
55.745011917 37.604520766
53.23452 38.7379422
【问题讨论】:
-
经纬度后面总是跟日期吗?
-
嗯,是的。我认同。大数据集,但似乎如此。
-
gsub('.*,((-?\\d+\\.\\d+ ?){2}),.*', '\\1', d$V1) -
@alistaire 不错。为什么
-?? -
@Jota 纬度和经度可以是负数。我不确定他们是否在这里,但如果其他人想尝试调整答案,那就更安全了。