如何强制RMarkdown输出内容不自动换行?
解决RMarkdown中MatchIt结果表格换行、未占满宽度的问题
下面给你几个实用的解决方法,直接套用就能解决表格换行、右侧留白的问题:
方法1:用kableExtra重构表格并强制占满宽度
summary(a1)的输出可以拆分成结构化数据,我们把这些数据提取出来用kableExtra重新渲染,设置表格宽度为100%,同时强制内容不换行:
library(kableExtra) # 提取summary里的匹配前后汇总表格 sum_all <- summary(a1)$sum.all sum_matched <- summary(a1)$sum.matched # 渲染匹配前表格 kable(sum_all, "html") %>% kable_styling(full_width = TRUE, bootstrap_options = "striped") %>% row_spec(0, bold = TRUE) %>% column_spec(1:ncol(sum_all), width = "auto", white_space = "nowrap") # 渲染匹配后表格 kable(sum_matched, "html") %>% kable_styling(full_width = TRUE, bootstrap_options = "striped") %>% row_spec(0, bold = TRUE) %>% column_spec(1:ncol(sum_matched), width = "auto", white_space = "nowrap")
方法2:添加自定义CSS强制全局表格样式
直接在RMarkdown文档开头添加CSS代码,让所有表格自动占满页面宽度且不换行,适合不想手动重构表格的情况:
--- title: "rEproDUciBle ExamPle" output: html_document: number_sections: true toc: true toc_float: true toc_depth: 1 --- <style> /* 强制所有表格占满宽度,内容不换行 */ table { width: 100% !important; white-space: nowrap !important; } /* 可选:如果表格内容太宽,让表头固定在顶部 */ thead th { position: sticky; top: 0; background-color: #fff; } </style> # x ## x ## x # x ## x ```{r } library(MatchIt) data("mtcars") names(mtcars) <- c("longlonglonglonglongword1longlonglonglonglongword1", "longlonglonglonglongword1longlonglonglonglongword2", NA, NA, NA, NA, NA, "longlonglonglonglongword1longlonglonglonglongword9") a1 <- matchit(longlonglonglonglongword1longlonglonglonglongword9 ~ longlonglonglonglongword1longlonglonglonglongword1 + longlonglonglonglongword1longlonglonglonglongword2, mtcars, method = "nearest", distance = "mahalanobis",ratio = 1,replace = FALSE, std.caliper = TRUE, caliper = c(longlonglonglonglongword1longlonglonglonglongword2 = 0.1))
x
options(width = 300) # 加大控制台输出宽度,配合CSS生效 summary(a1)
## 方法3:调整print函数的宽度参数 针对`summary.matchit`的输出,直接调用`print`时指定更大的宽度,结合`options(width)`: ```r options(width = 300) print(summary(a1), width = 300)
这个方法最简单,但如果列名特别长,可能还是需要配合CSS才能完全占满页面宽度。
内容的提问来源于stack exchange,提问作者Karoline
相关产品推荐
相关产品推荐

