使用 flextable,您可以通过添加符号来轻松完成。 p-values 列之后的列并使用 0 填充。
以下代码演示如何从头开始:
x <- lm(formula=mpg~cyl+hp, mtcars)
library(flextable)
library(broom)
library(magrittr)
pvalue_format <- function(x){
z <- cut(x, breaks = c(-Inf, 0.001, 0.01, 0.05, 0.1, Inf), labels = c("***", "**", "*", ".", ""))
as.character(z)
}
tidy(x) %>%
flextable(
col_keys = c("term", "estimate", "std.error", "statistic", "p.value", "signif")) %>%
colformat_double(digits = 4) %>%
mk_par(j = "signif", value = as_paragraph(pvalue_format(p.value)) ) %>%
set_header_labels(term = "", estimate = "Estimate",
std.error = "Standard Error", statistic = "t value",
p.value = "Pr(>|t|)", signif = "" ) %>%
align(j = "signif", align = "left") %>%
padding(padding.right = 0, j = "p.value", part = "all") %>%
bold(j = "signif", bold = TRUE) %>%
padding(padding.left = 0, j = "signif", part = "all") %>%
autofit()
您也可以使用flextable::as_flextable 方法并根据您的需要调整结果:
as_flextable(x) %>%
delete_part(part = "footer") %>%
padding(padding.right = 0, j = "p.value", part = "all") %>%
padding(padding.left = 0, j = "signif", part = "all") %>%
color(i = ~ p.value > .05, j = "p.value", color = "gray") %>%
theme_vanilla()