r - 使用带有 kableExtra 格式的 R“tables”包的字幕
问题描述
我正在尝试将标题添加到 R 中包“tables”的表输出,然后使用 kableExtra 进行附加格式化。
尽管其他线程已经找到了通过使用额外的 LaTeX 代码添加标题标题的方法(使用 Hmisc LaTeX 函数和Hmisc::latex 编织时,LaTeX 表中没有出现标题,而 Hmisc::latex 没有打印带有表格对象的标题),这些解决方案似乎与toKable()
允许使用 kableExtra 进行额外格式化的更新功能。
通常会在kable(x, caption = "mycaption")
使用时添加标题。但是,如下生成时,会发生错误(Error in toKable(., booktabs = T) : 'table' must be a 'tabular' object.
)。如果我尝试通过添加任何其他格式latex()
,例如添加标题,则对象类型将发生变化,使其无法与该toKable()
功能一起使用。toKable()
任何有关如何使用已通过的其他 LaTeX 格式的见解latex()
将不胜感激!
library(tables)
library(magrittr)
library(kableExtra)
tabular((Species + 1) ~ (n=1) + Format(digits=2)* (Sepal.Length + Sepal.Width)*(mean + sd), data=iris) %>%
latex(., options = list(tabular = "longtable",
toprule = "\\caption{Table 1. My favorite caption}\\\\\\toprule")) %>%
toKable(., booktabs = T)
传递给之前的 LaTeX 输出toKable()
:
\begin{longtable}{lccccc}
\caption{Table 1. My favorite caption}\\\toprule
& & \multicolumn{2}{c}{Sepal.Length} & \multicolumn{2}{c}{Sepal.Width} \\
Species & n & mean & sd & mean & \multicolumn{1}{c}{sd} \\
\hline
setosa & $\phantom{0}50$ & $5.01$ & $0.35$ & $3.43$ & $0.38$ \\
versicolor & $\phantom{0}50$ & $5.94$ & $0.52$ & $2.77$ & $0.31$ \\
virginica & $\phantom{0}50$ & $6.59$ & $0.64$ & $2.97$ & $0.32$ \\
All & $150$ & $5.84$ & $0.83$ & $3.06$ & $0.44$ \\
\hline
\end{longtable}
解决方案
在修改了一些代码并尝试了解每个代码的工作原理之后......我尝试将选项列表直接粘贴到toKable
. 这似乎有效,并且似乎toKable
与latex()
.
tabular((Species + 1) ~ (n=1) + Format(digits=2)* (Sepal.Length + Sepal.Width)*(mean + sd),
data=iris) %>%
toKable(., booktabs = T,
options = list(tabular = "longtable",
toprule = "\\caption{My favorite caption}\\\\\\toprule"))
如上所愿,这会正确吐出以下 LaTex 代码:
\begin{longtable}{lccccc}
\caption{Table 1. My favorite caption}\\\toprule
& & \multicolumn{2}{c}{Sepal.Length} & \multicolumn{2}{c}{Sepal.Width} \\ \cmidrule(lr){3-4}\cmidrule(lr){5-6}
Species & n & mean & sd & mean & \multicolumn{1}{c}{sd} \\
\midrule
setosa & $\phantom{0}50$ & $5.01$ & $0.35$ & $3.43$ & $0.38$ \\
versicolor & $\phantom{0}50$ & $5.94$ & $0.52$ & $2.77$ & $0.31$ \\
virginica & $\phantom{0}50$ & $6.59$ & $0.64$ & $2.97$ & $0.32$ \\
All & $150$ & $5.84$ & $0.83$ & $3.06$ & $0.44$ \\
\bottomrule
\end{longtable}
然后可以根据需要在报告或其他方式中显示 LaTeX 代码。在转换为 PDF 的 Rmarkdown 文档中,这可能看起来像(记得调用tables
andkableExtra
包):
推荐阅读
- javascript - 不要在浏览器或标签关闭时销毁 Vue-Cookie
- spring - 我们如何在 where 块中使用 hashmap 作为变量
- javascript - Sails.js 项目使用 passport.js 不会重定向到 twitter 登录
- perl - 列出目录中的文件并存储在数组中。该数组可以在循环外访问
- azure-application-insights - 为 AppInsight RestAPI 上下文设置时间跨度
- java - JsonPath:按数组中任何数组中的值过滤
- javascript - 未定义导出“MyModule” - 在 Jest 测试中
- javascript - d3 v5 轴比例更改平移方式太多
- python - 尝试下载 mysqlclient 时出现 gcc 错误
- node.js - 请解释 npx 限制 - 运行 npx mocha 时无法使用断言库