R: Как мне избавиться от блока вопросительного знака в строке символов? - PullRequest
2 голосов
/ 19 июня 2020

У меня есть vector с кучей Company Name наблюдений, полученных из отдельного data frame. Я использовал vector как способ просмотреть список всех уникальных названий компаний в data frame, а затем очистил его (исправление орфографических ошибок, изменение / удаление имен из слияний и т. Д. c.). Переименование выполняется построчно (т. Е. Жестко запрограммировано) из-за характера data, не обеспечивающего шелковисто-гладкий процесс очистки. У меня возникла странная проблема, которую я не знаю, как исправить.

Было несколько компаний, в названиях которых использовались определенные специальные символы, такие как 'ñ', 'ü', 'é' и т. Д. c. Глядя на этот vector из окна View, эти наблюдения также имели идентичную запись рядом с ними, за исключением странного вопросительного знака вместо этих букв. Например:

Company_Name

SES (Société Européenne des Satellites (SES))
SES (Soci�t� Europ�enne des Satellites (SES))

Изначально я исправлял орфографические ошибки с помощью такой строки кода:

dataframe$Company_Name[which(dataframe$Company_Name == "SES (Société Européenne des Satellites (SES))" | dataframe$Company_Name == "SES (Soci\xe9t\xe9 Europ\xe9enne des Satellites (SES))"] <- "SES S.A."

Альтернативное имя, которое вы видите после имени с диакритическими знаками, является именем с блоками вопросительного знака. Я получил это альтернативное имя, вызвав специфицированную c строку вектора, для которого появилось имя с блокированным вопросом (например, vector[32]), и физически скопировав и вставив вывод в код.

В идеале , vector после завершения очистки будет выглядеть так:

Company_Name

SES S.A.

Однако вместо удаления блоков вопросительного знака он сохраняет их:

Company_Name

SES S.A.
SES (Soci�t� Europ�enne des Satellites (SES))

Имеет кто-нибудь еще сталкивался с подобной проблемой? Я проверил, была ли проблема в написании, но, похоже, проблема не в этом. Приветствуется любая помощь.

(Примечание: у меня нет предпочтений для определенных c пакетов - все варианты указаны в таблице!)

1 Ответ

2 голосов
/ 19 июня 2020

Вероятно, это проблема с кодировкой.

Посмотрите на кодировку строк со знаком вопроса:

Encoding(Company_Name)

Для французских предложений вы должны установить кодировку следующим образом:

Encoding(Company_Name)<-'latin1'

...