Мы можем попробовать использовать 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"