Есть ли способ заменить '(простое число) в строке с помощью str_replace_all? - PullRequest
0 голосов
/ 16 июня 2020

Я пытаюсь форматировать различные координаты в градусах / минутах и ​​градусах / минутах / секундах перед прохождением измерений :: conv_unit (), для чего требуется ввод в виде чисел, разделенных пробелами. Я читал различные ответы на похожие вопросы, например: Удалить все специальные символы из строки в R?

Что побудило меня сначала попробовать:

library(tidyverse)
latitude <- "-36°48′31.33"
str_replace_all(string = latitude, pattern = c("°|'|\"|′|″"), repl = " ") 

Однако главный символ (') не удаляется. Это проблема с вызовом символа в аргументе или его кодировкой?

Я изучал другие способы замены символов:

str_replace_all(string = temp_core$description$latitude, pattern = "[^[:alnum:]]", repl=" ") #removes all symbols including . and -
str_replace_all(string = temp_core$description$latitude, pattern = "[[:punct:]]", repl=" ") #removes most symbols including . and - but excluding °
iconv(temp_core$description$latitude, "utf-8", "ascii", sub = " ") # removes the unwanted symbols but replaces them with an uneven number of spaces

Но ни один из этих вариантов мне не дал нужная мне комбинация: сохранение одних символов (- и.) при удалении других. Я предпочитаю элемент управления, который предоставляет шаблон = c ("° | '| \" | ′ | ″), поскольку я создаю базу данных с автоматической обработкой данных и поэтому могу указать символы, обычно включаемые в координаты.

Есть ли простое решение, которое я пропустил, которое использует str_replace_all ()? Указывает ли сбой на проблему с кодировкой строки?

В настоящее время используется R версии 4.0.1 и tidyverse_1.3.0.

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