R语言 使用sjPlot::tab_model()时,如何将估计值和CI转换为科学计数法?

qlfbtfca  于 2023-05-20  发布在  其他
关注(0)|答案(1)|浏览(120)

我正在处理一个包含非常大的数字的变量(高达852万亿!),并制作了一些简单的混合效果模型。我正在使用sjPlot::tab_model()来创建发布版本,但我无法将估计值和置信区间转换为科学计数法。我找到了格式化p值的参数,但没有找到估计值本身。
一些示例代码:

ID <- round(runif(30, min = 1, max = 10))
Conc <- runif(30, min = 8.050e+12, max = 8.520e+18)
Year <- round(runif(30, min = 2000, max = 2005))

dat <- bind_cols("ID" = ID, 
          "Conc" = Conc, 
          "Year" = Year)
dat

# Mixed-effects model
library(lme4)
library(sjPlot)

testmod <- lmer(Conc ~ Year + (1|ID), data = dat)
tab_model(testmod)

我试过including scientific = TRUE,尝试在调用tab_model之前格式化模型,并查看了参考指南,但无法找到如何做到这一点。我应该补充一下,我有三个模型放在tab_model()中,所以理想情况下,一次调用多个模型时,解决方案将工作。

ctehm74n

ctehm74n1#

我不知道如何使用sjPlot来实现这一点,但是使用modelsummary包版本1.4.0.9000,您可以使用fmt_sci()函数。此版本目前只能从Github获得:

library(remotes)
install_github("vincentarelbundock/modelsummary")

完全重新启动R以使更改生效。然后

packageVersion("modelsummary")
# [1] '1.4.0.9000'

library(lme4)
library(modelsummary)
set.seed(1024)
ID <- round(runif(30, min = 1, max = 10))
Conc <- runif(30, min = 8.050e+12, max = 8.520e+18)
Year <- round(runif(30, min = 2000, max = 2005))
dat <- data.frame("ID" = ID, "Conc" = Conc, "Year" = Year)
testmod <- lmer(Conc ~ Year + (1|ID), data = dat)

modelsummary(testmod, fmt = fmt_sci(digits = 2))

相关问题