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

如何将字符类中的阿拉伯数字转换为R中的英文数字?,r,arabic,persian,coercion,R,Arabic,Persian,Coercion,我有一个字符数据框,它的第一列包含阿拉伯/波斯数字。实际上,这些数字的类别是“字符”。如何将它们转换为英文数字以进行计算?这似乎主要是字符映射的问题 虽然没有经过广泛的测试,但至少对于波斯语数字字符串来说,下面的方法似乎是有效的 persian <- "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u06F0\u06F1\u06F2\u06F3\u06F4\u06F5\u06F6\u06F7\u06F8\u06F9

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

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

虽然没有经过广泛的测试,但至少对于波斯语数字字符串来说,下面的方法似乎是有效的

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))
我从中获得了Unicode。如果需要,您可以扩展翻译向量以包括阿拉伯语符号(如果波斯语符号尚未涵盖这些符号——我对您所指的系统不太熟悉)。

请给出一个示例。例如,也许您可以包括
dput(head(df))
(其中
df
是您的数据帧)的输出。或者,更好的是,只包含向量中包含这些数字的一部分。
> persian.tonumber("٢٣٤٥")
[1] 2345