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
相关产品推荐
相关产品推荐

