Nib*_*ced 4 r number-formatting
我需要使用缩写来显示数字,如下所示
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...
Run Code Online (Sandbox Code Playgroud)
我在 stackoverflow 上看到过其他语言提出的问题(对于 Javascript 至少有三次):
使用公制前缀(如 1.5K、1M、1G 等)格式化 JavaScript 数字
如果数字为 1000,则将数字格式化为 2.5K,否则为 900
如何格式化类似于 Stack Overflow 信誉格式的数字
...但我无法找到 R 的任何内容。我错过了什么吗?
使用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..."
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4108 次 |
| 最近记录: |