gpt4 book ai didi

r - 设置带有百万 (M) 和十亿 (B) 后缀的数字格式

转载 作者:行者123 更新时间:2023-12-03 04:44:36 25 4
gpt4 key购买 nike

我有很多数字,例如货币或美元:

1 6,000,000
2 75,000,400
3 743,450,000
4 340,000
5 4,300,000

我想使用后缀来格式化它们,例如 M(百万)和 B(十亿):

1 6.0 M
2 75.0 M
3 743.5 M
4 0.3 M
5 4.3 M

最佳答案

如果您以此数字向量x开始,

x <- c(6e+06, 75000400, 743450000, 340000, 4300000)

您可以执行以下操作。

paste(format(round(x / 1e6, 1), trim = TRUE), "M")
# [1] "6.0 M" "75.0 M" "743.5 M" "0.3 M" "4.3 M"

如果您不关心尾随零,只需删除 format() 调用即可。

paste(round(x / 1e6, 1), "M")
# [1] "6 M" "75 M" "743.5 M" "0.3 M" "4.3 M"

或者,您可以使用 print 方法分配一个 S3 类,并将 y 保留为下面的数字。这里我使用 paste0() 使结果更加清晰。

print.million <- function(x, quote = FALSE, ...) {
x <- paste0(round(x / 1e6, 1), "M")
NextMethod(x, quote = quote, ...)
}
## assign the 'million' class to 'x'
class(x) <- "million"
x
# [1] 6M 75M 743.5M 0.3M 4.3M
x[]
# [1] 6000000 75000400 743450000 340000 4300000

您也可以为数十亿和数万亿美元做同样的事情。有关如何将其放入数据框中的信息,请参阅 this answer ,因为您需要 format()as.data.frame() 方法。

关于r - 设置带有百万 (M) 和十亿 (B) 后缀的数字格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28159936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com