gpt4 book ai didi

r - 用括号格式化负数

转载 作者:行者123 更新时间:2023-12-04 11:26:35 25 4
gpt4 key购买 nike

我想将我的负数格式化为“会计”格式,即带括号。例如,我想将 -1000000 格式化为 (1,000,000)。

我知道千位分隔符的引入方式:

 prettyNum(-1000000, big.mark=",",scientific=F)

但是,我不确定如何引入括号。我希望能够将格式应用于整个向量,但我希望只影响负数。并不是说在引入千位分隔符之后,数字的向量现在是一个字符向量,例如:

 "-50,000" "50,000"  "-50,000" "-49,979" "-48,778" "-45,279" "-41,321"

有什么想法吗?谢谢。

最佳答案

你可以试试我的包 formattable,它有一个内置函数 accounting 可以将会计格式应用于数字向量。

> # devtools::install_github("renkun-ken/formattable")
> library(formattable)
> accounting(c(123456,-23456,-789123456))
[1] 123,456.00 (23,456.00) (789,123,456.00)

您可以将数字打印为整数:

> accounting(c(123456,-23456,-789123456), format = "d")
[1] 123,456 (23,456) (789,123,456)

这些数字适用于算术计算:

> money <- accounting(c(123456,-23456,-789123456), format = "d")
> money
[1] 123,456 (23,456) (789,123,456)
> money + 5000
[1] 128,456 (18,456) (789,118,456)

它也适用于 data.frame 打印:

> data.frame(date = as.Date("2015-01-01") + 1:10, 
balance = accounting(cumsum(rnorm(10, 0, 100000))))
date balance
1 2015-01-02 (21,929.80)
2 2015-01-03 (246,927.59)
3 2015-01-04 (156,210.85)
4 2015-01-05 (135,122.80)
5 2015-01-06 (199,713.06)
6 2015-01-07 (91,938.03)
7 2015-01-08 (34,600.47)
8 2015-01-09 147,165.57
9 2015-01-10 180,443.31
10 2015-01-11 251,141.04

关于r - 用括号格式化负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19591850/

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