将整数转换为单词

Posted

技术标签:

【中文标题】将整数转换为单词【英文标题】:Convert integer to words 【发布时间】:2017-10-09 17:38:36 【问题描述】:

出于样式数据可视化的目的,我希望能够使用单词显示整数(例如

“两千一十七”

) 而不是数字(例如2017)。

作为我正在寻找的示例,这是一个适用于小的标量整数的快速函数:

int_to_words <- function(x) 

                   index <- as.integer(x) + 1
                   words <- c('zero', 'one', 'two', 'three', 'four',
                              'five', 'six', 'seven', 'eight', 'nine',
                              'ten')
                   words[index]



int_to_words(5)

【问题讨论】:

我删掉了你的问题的一句话,因为它违反了 SO 规则要求图书馆推荐。不管怎样,你见过这个吗(往另一个方向走,但很容易反转)***.com/questions/18332463/… ? 嗯,我已经给了你上面链接的解决方案和下面我的答案中的另一个,但是模糊或具体它只是违反规则要求图书馆推荐。没什么大不了的,它很容易被编辑掉,人们仍然可以用图书馆来回答。规则就是规则,你知道吗? 【参考方案1】:

选项 1:

使用“english”包中的as.english 函数:

library(english)

as.english(2017)

选项 2:

使用“qdap”包中的replace_number 函数。

library(qdap)

replace_number(2017)

选项 3:

使用“xfun”包中的numbers_to_words 函数。

library(xfun)

numbers_to_words(2017)

【讨论】:

【参考方案2】:

除了我在 cmets 中链接的函数之外,这里还有一个来自 GitHub gist 的解决方案:

source("https://gist.githubusercontent.com/hack-r/22104543e2151519c41a8f0ce042b31c/raw/01731f3176b4ee471785639533d38eda4790ab77/numbers2words.r")

numbers2words(0)

[1]“零”

numbers2words(5)

[1]“五”

numbers2words(50000)

[1]“五万”

numbers2words(50000000000000)

[1]“五十万亿”

【讨论】:

以上是关于将整数转换为单词的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法将数字单词转换为整数?

转换号码 |整数到单词

为啥 Python 不能理解单词形式的整数?

字符串到唯一整数散列

推理后如何将标记化的单词转换回原始单词?

将驼峰写法的单词转换为下划线分割的单词