在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等[重复]的主要内容,如果未能解决你的问题,请参考以下文章