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

如何在Rmarkdown中调整summarytools表格位置(PDF左对齐)

在Rmarkdown PDF输出中调整summarytools表格位置(左对齐)

要把summarytools生成的表格在PDF输出中设为左对齐,有几种实用方法,具体如下:

方法一:用summarytools自带的print参数设置LaTeX环境

summarytools生成的表格在PDF输出时本质是LaTeX代码,我们可以通过print()函数的参数直接指定左对齐环境:

library(summarytools)
# 先生成频率表对象
freq_table <- summarytools::freq(cars$speed, headings=FALSE, report.nas = FALSE, cumul=FALSE)
# 打印时指定LaTeX左对齐环境
print(freq_table, 
      method = "latex",
      latex.options = list(
        table.envir = "flushleft",  # 启用LaTeX左对齐环境
        table.placement = "!ht"     # 设置表格优先放在当前位置
      ))

table.envir = "flushleft"会让表格被包裹在LaTeX的flushleft环境中,实现左对齐;table.placement参数控制表格的排版位置,!ht表示尽量把表格放在代码所在的当前位置。

方法二:手动用LaTeX环境包裹表格输出

直接在R代码块前后添加LaTeX的左对齐环境标签,无需修改R代码本身:

\begin{flushleft}
library(summarytools)
summarytools::freq(cars$speed, headings=FALSE, report.nas = FALSE, cumul=FALSE)
\end{flushleft}

这种方法适合快速调整单个表格的对齐,无需额外修改R代码逻辑。

方法三:转换为kable表格(适合简化格式场景)

如果不需要summarytools的特殊格式,可以把表格转为数据框后用knitr::kable设置左对齐:

library(summarytools)
library(knitr)

# 把频率表转为数据框
freq_df <- as.data.frame(summarytools::freq(cars$speed, headings=FALSE, report.nas = FALSE, cumul=FALSE))
# 用kable生成左对齐表格
kable(freq_df, align = "l")  # "l"表示所有列左对齐,多列可指定如"lll"

这种方法灵活性高,能配合kable的其他参数进一步调整样式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 11:41:06