如何在table1包的连续统计量格式化中添加千位分隔符?
为table1包的连续统计量添加千位分隔符
要给table1包的连续变量统计量(均值、标准差)添加千位分隔符,只需在原有格式化代码中,用R的format()或prettyNum()函数对计算后的统计值做处理即可,以下是两种可行方案:
方案1:分步处理统计值
my.render.cont <- function(x) { # 先计算并保留两位小数的统计量 stats <- stats.apply.rounding(stats.default(x), digits = 2) # 为均值和标准差添加千位分隔符,同时固定两位小数 mean_formatted <- format(stats$MEAN, big.mark = ",", nsmall = 2) sd_formatted <- format(stats$SD, big.mark = ",", nsmall = 2) # 拼接成最终显示的字符串 c("", "Mean (SD)" = sprintf("%s (± %s)", mean_formatted, sd_formatted)) }
方案2:在sprintf中直接嵌套格式化
my.render.cont <- function(x) { with(stats.apply.rounding(stats.default(x), digits = 2), c("", "Mean (SD)" = sprintf("%s (± %s)", # 对均值添加千位分隔符 format(MEAN, big.mark = ",", nsmall = 2), # 对标准差添加千位分隔符 format(SD, big.mark = ",", nsmall = 2)))) }
关键参数说明
big.mark = ",":指定千位分隔符为逗号,若需要用空格作为分隔符,改为big.mark = " "即可。nsmall = 2:强制保留两位小数,和原代码中digits = 2的设置保持一致,避免格式混乱。- 也可以用
prettyNum()替代format(),效果完全相同,例如:prettyNum(MEAN, big.mark = ",", nsmall = 2)。
修改后,生成的table1表格中,类似1234.56的数值会显示为1,234.56,符合千位分隔的格式要求。
内容的提问来源于stack exchange,提问作者Thomas Speidel
相关产品推荐
相关产品推荐

