清理地理编码数据

Cleaning Geocode Data

我有一个像这样的 df:

df = data.frame(longitude = c('-235.969', 
                       '-23.596.244', 
                       '-2.359.186'))

这是一列地理编码的示例,我正在尝试将其转换成类似这样的内容

new_df = data.frame(longitude = c('-23.5969', '-23.596244', '-23.59186'))

主要目的是在传单应用程序中使用地理编码。

如果真的有必要,我会分两步进行:

library(magrittr)
gsub(".", "", df$longitude, fixed = TRUE) %>%
  sub("(\d{2})", "\1\.", .)

[1] "-23.5969"   "-23.596244" "-23.59186" 

先删除任何 . 然后用前两位替换前两位 + .

PS。没有管道你可以这样做:

sub("(\d{2})", "\1\.", gsub(".", "", df$longitude, fixed = TRUE))

编辑:重要警告

正如 Matt 指出的那样,这仅在您的经度 ALWAYS 包含如果您的经度是两位数 (10-99) 时才有效。