You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言处理数据集时如何将数值统一保留两位小数

解决方案

你只需要在拼接货币前缀前,对数值做保留两位小数的格式化处理即可,推荐使用sprintf()函数,可自动补全不足两位的小数位,显示更规范。

完整可运行代码

library(DT)
library(dplyr)

Test <- structure(list(date2 = structure(c(18808, 18808, 18809, 18810
), class = "Date"), Category = c("FDE", "ABC", "FDE", "ABC"), 
coef1 = c(445.23231, 1.31231, 6.32323, 1.232),coef2 = c(8.3231, 3.3432, 1.3233, 6.3233)), row.names = c(NA, 4L), class = "data.frame")

Test<-Test%>%mutate(Sum = rowSums(across(3:last_col()), na.rm = TRUE))
# 核心修改:先格式化保留两位小数再拼接货币前缀
Test <- Test %>% mutate(across(where(is.numeric), ~paste0('US $', sprintf("%.2f", .))))

Test

运行输出结果

date2 Category     coef1   coef2       Sum
1 2021-06-30      FDE US $445.23 US $8.32 US $453.56
2 2021-06-30      ABC   US $1.31 US $3.34   US $4.66
3 2021-07-01      FDE   US $6.32 US $1.32   US $7.65
4 2021-07-02      ABC   US $1.23 US $6.32   US $7.56

可选方案

如果不需要自动补零,仅需对原始数值四舍五入保留两位,可将核心修改行替换为:

Test <- Test %>% mutate(across(where(is.numeric), ~paste0('US $', round(., 2))))

如果不需要四舍五入,仅需截断保留两位小数,可替换为:

Test <- Test %>% mutate(across(where(is.numeric), ~paste0('US $', floor(. * 100) / 100)))

内容的提问来源于stack exchange,提问作者user17163779

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 14:45:03