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

如何为ztable中的数值添加百分比格式(不转换为占比)

嘿,我知道你要的是给每个数值直接加上%符号(比如把6变成6%、319变成319%),而不是计算总计占比对吧?刚好ztable支持自定义单元格格式,而且不会破坏热图的颜色逻辑(因为底层还是用原始频数计算颜色),修改后的代码如下:

library(titanic)
library(ztable)
library(dplyr)

ztable(xtabs(Freq ~ Class + Age, data = data.frame(Titanic)),
       # 自定义格式化函数,给每个数值添加%符号
       format = function(x) sprintf("%d%%", x)) %>%
  makeHeatmap(palette = "Blues")

小细节说明:

  • sprintf("%d%%", x):这里的%d用来格式化整数,%%是转义写法,用来输出单个%符号;如果你的数据有小数,把%d换成%.2f就能保留两位小数,比如sprintf("%.2f%%", x)会输出6.00%这种格式。
  • 这个方法的好处是,原始的频数数值会被保留用于makeHeatmap的颜色映射,不会因为把数值转成字符串导致热图失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 12:37:58