如何使用gsub消除多行中的某些字符串和数字?

时间:2019-05-24 07:54:54

标签: r leaflet gsub

我正在尝试使用gsub()消除数据框中多行中的某些字符串和数字。

New Haven, CT (41.308252, -72924161)
MERIDEN, CT (41.537589, -72.8011)

以此类推。

但是我只想获取latitude (41.308252, 41.537589, etc.)longitude (-72924161, -72.8011, etc.),然后将它们放在单独的数据帧中。

结果应如下所示:

对于纬度

1. 41.308252
2. 41.537589

经度

1. -72924161
2. -72.8011

1 个答案:

答案 0 :(得分:0)

我们可以在此处尝试使用sub作为基本R选项:

df$lat <- sub(".*\\((-?\\d+(?:\\.\\d+)?).*", "\\1", col)
df$lng <- sub(".*\\([^,]+,\\s*(-?\\d+(?:\\.\\d+)?).*", "\\1", col)

以下是一个示例脚本,用于说明该逻辑有效:

col <- "New Haven, CT (41.308252, -72924161)"
sub(".*\\((-?\\d+(?:\\.\\d+)?).*", "\\1", col)
sub(".*\\([^,]+,\\s*(-?\\d+(?:\\.\\d+)?).*", "\\1", col)

这将输出:

[1] "41.308252"
[1] "-72924161"