R больше или равно символу преобразуется в знак равенства - PullRequest
0 голосов
/ 06 октября 2019

Я импортировал файл Excel (xlsx), используя пакет readxl в R. Один из столбцов, labeldata, который импортируется в R, содержит метки для других данных, содержащихся в файле, поэтому он состоит из символьных данных, таких как ≥65 years old. Когда я печатаю это labeldata на консоль, значение «больше или равно 65 годам» правильно отображается как ≥65 years old. Однако, когда я пытаюсь объединить этот столбец с другими столбцами (используя cbind или другие методы), знак больше или равно () преобразуется в знак равенства (=). Я попытался dput labeldata объект в текстовый файл, чтобы включить в этот пост, но когда я это сделаю, знак больше или равно также преобразуется в знак равенства.

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

labeldata="≥ 65 years"
print(labeldata)
[1] "= 65 years"

Проблема с этим примером, конечно, в том, что я просто набрал в метке и мог избежать проблемы с преобразованием, набрав labeldata="\u2265 65 years", но в своей реальной работе я не набираю эту информацию, а импортирую данные из Excel.

Я предполагаю, что это какая-то проблема кодирования, но есть ли способ предотвратить преобразование метки в знак равенства и сохранить оригинальную метку?

Обновлена ​​соответствующая информация

Я использую ОС Windows 10 x64 с R Studio, но я убедился, что проблема существует только в R. У меня есть эта проблема в R 3.2.3и R 3.6.1.

Я также заметил, что хотя это работает без каких-либо проблем:

labeldata = "\u2265 65 years"
labeldata
[1] "≥ 65 years"

Преобразование в фрейм данных вызывает проблему снова:

labeldata = "\u2265 65 years"
labeldata
[1] "≥ 65 years"
data.frame(labeldata)
labeldata
1 = 65 years
...