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

