如何将字符类中的阿拉伯数字转换为R中的英文数字?

时间:2018-04-28 13:42:13

标签: r arabic persian coercion

我有一个字符数据框,其第一列包含阿拉伯语/波斯语数字。实际上,这些数字的类别是#34;字符"。如何将它们转换为英文数字以便用它们进行计算?

1 个答案:

答案 0 :(得分:2)

这似乎主要是字符映射的问题。

未经过广泛测试,但以下情况似乎有效,至少对于波斯语数字字符串而言。

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

我从this answer获得了Unicode。如果需要包含阿拉伯符号,你可以扩展翻译向量(如果它们不被波斯符号覆盖 - 我对你所指的系统并不熟悉。)