как преобразовать арабские числа в классе символов в английские числовые в R?

У меня есть фрейм данных символов, первый столбец которого содержит арабские/персидские числа. Собственно, класс этих чисел — «символьный». Как я могу преобразовать их в английские числовые, чтобы сделать с ними некоторые вычисления?


person mjoudy    schedule 28.04.2018    source источник
comment
Приведите минимально воспроизводимый пример. Например, возможно, вы могли бы включить вывод dput(head(df)) (где df — ваш фрейм данных). Или, что еще лучше, просто включите часть вектора, содержащего такие числа.   -  person John Coleman    schedule 28.04.2018


Ответы (1)


Кажется, это в основном вопрос сопоставления символов.

Не всесторонне проверено, но следующее, похоже, работает, по крайней мере, для строк персидских чисел.

persian <- "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u06F0\u06F1\u06F2\u06F3\u06F4\u06F5\u06F6\u06F7\u06F8\u06F9"
english <- "01234567890123456789"
persian.tonumber <- function(s) as.numeric(chartr(persian,english,s))

Например,

> persian.tonumber("٢٣٤٥")
[1] 2345

Я получил Unicode из этого ответа. При необходимости вы можете расширить векторы перевода, включив арабские символы (если они еще не покрыты персидскими символами - я не совсем знаком с системой, о которой вы говорите).

person John Coleman    schedule 28.04.2018