У меня есть фрейм данных символов, первый столбец которого содержит арабские/персидские числа. Собственно, класс этих чисел — «символьный». Как я могу преобразовать их в английские числовые, чтобы сделать с ними некоторые вычисления?
как преобразовать арабские числа в классе символов в английские числовые в R?
Ответы (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
dput(head(df))
(гдеdf
— ваш фрейм данных). Или, что еще лучше, просто включите часть вектора, содержащего такие числа. - person John Coleman   schedule 28.04.2018