Приведение в порядок грязных координат для использования в измерениях - PullRequest
0 голосов
/ 07 декабря 2018

У меня довольно грязные градусы, координаты в десятичных минутах (источник которых находится вне моего контроля) в следующем формате (см. Ниже).В конечном итоге я пытаюсь определить расстояние между точками.

minlat <- "51  12.93257'"
maxlat <- "66  13.20549'"
minlong <- "- 5   1.23944'"
maxlong <- "- 5   1.36293'"

Как таковые, они находятся в довольно недружественном формате для (из пакета measurements):

measurements::conv_unit(minlat, from = 'deg_dec_min', to = 'dec_deg')

и в конечном итоге

distm(c(minlong, minlat), c(maxlong, maxlat), fun = distHaversine)

Я думаюМне нужно использовать gsub (чтобы перевести их в дружественный формат, в котором я хотел бы, чтобы они были

minlat <- 51 12.93257 # removing the double space
minlong <- -4 1.36293 # removing the double space and the space after the -

Я возился с gusb (все утро, и это побило меня, любая помощьбыло бы здорово !!

1 Ответ

0 голосов
/ 07 декабря 2018

Звучит так, будто вам просто нужно удалить все лишние пробелы.Мы можем попытаться использовать gsub здесь с поиском ответов.

minlong <- " - 5   1.23944 "   # -5 1.23944
minlong
gsub("(?<=^|\\D) | (?=$|\\D)", "", gsub("\\s+", " ", minlong), perl=TRUE)

[1] " - 5   1.23944 "
[1] "-5 1.23944"

Внутренний вызов gsub заменяет любое вхождение двух или более пробелов только одним пробелом.Внешний вызов затем выборочно удаляет оставшийся один пробел только , если он не заключен между двумя цифрами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...