Просто чтобы предоставить другое решение, на этот раз используя strsplit()
и lapply()
:
df <- data.frame(SHAPE = c("POINT (16.361866982751053 48.177421074512125)",
"POINT (16.30410258091979 48.16069903617549)",
"POINT (16.226971074542572 48.20539106235006)",
"POINT (16.36781410799229 48.25479849185693)"),
stringsAsFactors = F)
df[c("x", "y")] <- do.call(rbind, lapply(strsplit(df$SHAPE, "[()]"), function(col) {
(parts <- unlist(strsplit(col[2], " ")))
}))
df
Это дает
SHAPE x y
1 POINT (16.361866982751053 48.177421074512125) 16.361866982751053 48.177421074512125
2 POINT (16.30410258091979 48.16069903617549) 16.30410258091979 48.16069903617549
3 POINT (16.226971074542572 48.20539106235006) 16.226971074542572 48.20539106235006
4 POINT (16.36781410799229 48.25479849185693) 16.36781410799229 48.25479849185693
>