在R中将数字1000格式化为1k,将1000000格式化为1m等[重复]

Posted

技术标签:

【中文标题】在R中将数字1000格式化为1k,将1000000格式化为1m等[重复]【英文标题】:Format a number 1000 as 1k, 1000000 as 1m etc. in R [duplicate] 【发布时间】:2019-08-20 14:36:03 【问题描述】:

我需要使用这样的缩写来显示数字

1 shows as 1
999 shows as 999
1000 shows as 1K
999000 shows as 999K
1000000 shows as 1M
1500000 shows as 1.5M
1000000000 shows as 1G
etc...

我已经看到过 *** 上针对其他语言提出的问题(对于 javascript 至少三次):

Format a javascript number with a Metric Prefix like 1.5K, 1M, 1G, etc

Format a number as 2.5K if a thousand or more, otherwise 900

How to format numbers similar to Stack Overflow reputation format

1000000 to 1M and 1000 to 1K in oracle query

1000 to 1k, 1000000 to 1m etc. number abbreviation

...但我无法为 R 找到任何东西。我错过了什么吗?

【问题讨论】:

【参考方案1】:

使用dplyr::case_when

so_formatter <- function(x) 
  dplyr::case_when(
      x < 1e3 ~ as.character(x),
      x < 1e6 ~ paste0(as.character(x/1e3), "K"),
      x < 1e9 ~ paste0(as.character(x/1e6), "M"),
      TRUE ~ "To be implemented..."
  )


test <- c(1, 999, 1000, 999000, 1000000, 1500000, 1000000000, 100000000000)
so_formatter(test)


# [1] "1"                   
# [2] "999"                 
# [3] "1K"                  
# [4] "999K"                
# [5] "1M"                  
# [6] "1.5M"                
# [7] "To be implemented..."
# [8] "To be implemented..."

【讨论】:

您的答案比@akrun 用于将问题标记为重复的建议中的答案更清晰。 @phiver 我理解这方面,我只是让他知道我的想法,除此之外,在原始问题中发布他的答案取决于他。

以上是关于在R中将数字1000格式化为1k,将1000000格式化为1m等[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Swift 2.0将1000格式化为友好的K.

在python中将长数字格式化为字符串

JS中的1000000到1M和1000到1K等等[重复]

氧图。如何将轴旁边的值格式从 1000 更改为 1k

如何在 Dart 中将数字格式化为千位分隔符

如何在R中将多个日期格式格式化为一个?