gt表格特殊零值处理咨询:如何将货币格式$0.00替换为“-”
解决方案
方案1(gt v0.10.0及以上版本,最优推荐)
gt 从v0.10.0版本开始已原生支持货币零值自定义格式,直接使用fmt_currency的zero_pattern参数即可实现需求,无需额外编写自定义逻辑:
library(gt) library(magrittr) data <- data.frame(x=c(1.23,4.56,0,0,0,0,0)) table <- gt(data) %>% fmt_currency( columns = x, zero_pattern = "-" )
方案2(gt v0.10.0以下版本兼容)
低版本gt没有内置零值参数,可在fmt_currency格式化完成后,调用text_replace直接匹配替换零值的格式化结果,无需复现完整货币格式化逻辑:
library(gt) library(magrittr) data <- data.frame(x=c(1.23,4.56,0,0,0,0,0)) table <- gt(data) %>% fmt_currency(x) %>% text_replace( columns = x, pattern = "\\$0\\.00", replacement = "-" )
如果需要适配不同货币符号、小数位数的场景,调整正则匹配规则即可,例如保留2位小数的人民币格式可把pattern改为¥0\\.00。
内容的提问来源于stack exchange,提问作者Jacqueline Nolis
相关产品推荐
相关产品推荐

