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

how to convert Arabic numbers in character class to English numeric in R?

我有一个字符数据框,它的第一列包含 Arabic/Persian 个数字。实际上,这些数字的 class 是 "character"。如何将它们转换为英文数字以便用它们进行一些计算?

好像主要是字符映射的问题

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

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。如果需要,您可以扩展翻译向量以包含阿拉伯符号(如果它们尚未被波斯符号覆盖——我对您所指的系统并不十分熟悉)。