首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在huxtable中使用hugrex函数格式化数字

在huxtable中使用hugrex函数格式化数字
EN

Stack Overflow用户
提问于 2020-12-31 13:57:57
回答 2查看 149关注 0票数 0

函数huxreghuxtable包中自动识别数字并将其格式化为number_format = "%.3f"选项中的预定义。我想在我的报告中报告置信区间,并使用CI95:前缀。不幸的是,前缀的数字部分被自动格式化,前缀看起来类似于 of 95.000

让我们考虑下面的示例:

代码语言:javascript
复制
library(huxtable)
data <- data.frame(y = rnorm(10), x=rnorm(10))
fit <- lm(y ~ x, data)

huxreg(fit,
     ci_level = 0.95,
     error_pos = "below",
     error_format = "CI95: ({conf.low}, {conf.high})" )

有什么方法可以得到CI95的预期吗?我尝试过数字字符转换,但没有成功。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-31 19:44:48

虽然不是最优的,但您也许可以将, number_format = c("%.3f", "%.3g", "%.3f", "%.3g")添加到huxreg调用中,以具体影响表中CI95行的格式设置(或者将输出保存为对象,然后修改定义这些行格式的属性元素,例如do attr(res, "number_format")[[13]] <- "%.3g"等)。除此之外,我只能考虑以某种方式修改底层的glue转换器,该转换器转换整个字符串,并使所有数值元素都具有相同的格式。

票数 1
EN

Stack Overflow用户

发布于 2021-02-24 12:27:17

另一种方法是将包含函数的列表传递给number_format

代码语言:javascript
复制
    library(huxtable)
    library(dplyr)
    data <- data.frame(y = rnorm(10), x=rnorm(10))
    fit <- lm(y ~ x, data)
    
    leave_95_alone <- function (n) ifelse(n == 95, as.integer(n), sprintf("%.3f", n))
    
    huxreg(fit,
             ci_level = 0.95,
             error_pos = "below",
             error_format = "CI95: ({conf.low}, {conf.high})" 
           ) %>% 
           set_number_format(c(3,5), 2, 
             list(leave_95_alone)
           )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65521828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档