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

TableOne与gtsummary处理极小值显示为0的问题求助

解决TableOne/gtsummary极小值显示为0的问题

针对TableOne的解决方案

方法1:调整打印时的小数位数

直接在print()中指定digits参数,设置足够多的小数位数来展示极小值:

library(tableone)
data(iris)
iris$rands <- 1e-9 * runif(n = nrow(iris))
tab <- CreateTableOne(data = iris)
# 设置10位小数,确保极小值能被显示
print(tab, digits = 10)

方法2:强制使用科学计数法

如果小数位数太多不美观,可启用科学计数法格式:

print(tab, scientific = TRUE)

针对gtsummary的解决方案

方法1:指定变量的小数位数

用modify_fmt_fun()为目标变量设置足够的小数位数:

library(gtsummary)
data(iris)
iris$rands <- 1e-9 * runif(n = nrow(iris))
tbl_summary(iris) |>
  # 为rands变量设置10位小数
  modify_fmt_fun(vars(rands), ~style_number(., digits = 10))

方法2:用科学计数法格式化

如果更倾向于科学计数法展示,使用style_scientific()函数:

tbl_summary(iris) |>
  modify_fmt_fun(vars(rands), ~style_scientific(., digits = 2))

原理说明

TableOne和gtsummary默认的数值格式化规则会对极小值进行四舍五入(默认保留2位小数),导致极小值被显示为0。通过调整格式化参数(小数位数或科学计数法),就能强制展示变量的实际数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 09:06:01