将整数转换为单词

时间:2017-10-09 17:38:37

标签: r

为了设置数据可视化样式,我希望能够使用单词显示整数(例如

  

"二千一十七"

)而非数字(例如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)

2 个答案:

答案 0 :(得分:6)

选项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)

答案 1 :(得分:4)

除了我在评论中链接的功能外,这里还有来自GitHub要点的另一个解决方案:

  /// Creates a raw buffer over the contiguous bytes in the given typed buffer.
  ///
  /// - Parameter buffer: The typed buffer to convert to a raw buffer. The
  ///   buffer's type `T` must be a trivial type.
  @_inlineable
  public init<T>(_ buffer: UnsafeMutableBufferPointer<T>) {
    self.init(start: buffer.baseAddress!,
      count: buffer.count * MemoryLayout<T>.stride)
  }
  

[1]&#34;零&#34;

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

numbers2words(0)
  

[1]&#34;五&#34;

numbers2words(5)
  

[1]&#34;五万&#34;

numbers2words(50000)
  

[1]&#34;五十万亿&#34;