Знаете ли вы все альтернативные варианты написания, например, SW против юго-запада?Для меня это кажется очень важным, поскольку места не в порядке.Если это так, возможно, вы могли бы сделать что-то вроде этого:
pat <- "SW|south west" #alternate spellings
i <- regmatches(VEC,regexec(pat,VEC)) # find them per string
i[lengths(i) == 0] <- NA_character_ # convert zeros to nas
i <- unlist(i)
f <- function(x) gsub(paste0(".*?(?<=",i[x],")\\D+(\\d+\\.?\\d*).*"),"\\1",VEC[x],perl = T) # some regex function to extract numbers after string occurence
SW <- sapply(seq_along(VEC),f) # extract
> SW
[1] "33.9" "38.86"
Повторите для каждого столбца
Вероятно, необходимо настроить функцию, чтобы приспособиться к NAS, возможно, обернуть в ifelse()