gpt4 book ai didi

r - 如何在数字中添加$符号

转载 作者:行者123 更新时间:2023-12-05 01:49:24 28 4
gpt4 key购买 nike

我有几个数字是 numeric 类。下面的例子。

df = c(12974,12412,124124,124124,34543,4576547,32235)

现在我想在每个数字前添加 '$' 符号而不丢失其作为数字的类。

我尝试使用粘贴方法,但为此我必须将 as.numeric 转换为 as.character,然后在使用粘贴函数后,如果我转换为 as.numeric,它返回为 Na!谁能帮我 ?提前致谢!

最佳答案

一般来说,当您使用数据进行计算/分析时,您应该将数据保留为数字,并且只有在您想要在表格、绘图或报告中显示结果时才粘贴美元符号。否则,您为什么需要它?

R 中没有内置货币类,这可能是件好事。但是,R 是一种灵活的语言,允许快速简单地创建 S3 类,因此如果您真的想要,您可以。

以下是此类系统的一个非常基本的实现。它基于美分的整数,以避免出现 float 问题:

dollars <- function(x) {
structure(as.integer(x * 100), class = "dollars")
}

as.dollars <- function(x) {
dollars(x)
}

format.dollars <- function(x, ...) {
scales::dollar(round(unclass(x)/100, 2))
}

print.dollars <- function(x, ...) {
print(format(x), quote = FALSE, ...)
}

as.data.frame.dollars <- function(x, ...) {
nrows <- length(x)
structure(list(x), row.names = as.character(seq(nrows)), class = "data.frame")
}

在您的示例中对此进行测试,我们有

df <- c(12974, 12412, 124124, 124124, 34543, 4576547, 32235)

as.dollars(df)
#> [1] $12,974 $12,412 $124,124 $124,124 $34,543 $4,576,547 $32,235

我们可以将结果存储在数据框中:

dat <- data.frame(cost = as.dollars(df))

dat
#> cost
#> 1 $12,974
#> 2 $12,412
#> 3 $124,124
#> 4 $124,124
#> 5 $34,543
#> 6 $4,576,547
#> 7 $32,235

并在保持其美元符号的同时执行算术运算。

dat$cost / 2
#> [1] $6,487 $6,206 $62,062 $62,062 $17,272 $2,288,274 $16,118

我个人认为这不值得付出努力,当然也不会在生产代码中使用它,但希望它能给您一些想法。

创建于 2022-10-17 reprex v2.0.2

关于r - 如何在数字中添加$符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74102571/

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