如何在输出为 kableExtra 的 modelsummary() 中添加来自 kable() 的参数
How to add arguments from kable() in modelsummary() with output as kableExtra
我最近从 的答案中发现了 R 包 modelsummary
。 modelsummary
创建的摘要 table 的输出似乎可以是 class kable_knitr
可以从 kableExtra
馈送到其他函数,例如 kable_styling
.
但是,我对如何从函数 kable()
到 modelsummary()
函数中指定其他选项的值感到困惑。一种明显的方法可能是获得 data.frame
输出,然后将其输入 kable
。有没有更好的选择(这样我就可以避免修复 data.frame
输出?
我特别在寻找 kable()
选项,escape=F
(在乳胶输出中插入希腊字母 - 参见 )和 booktabs=T
.
一个可重现的例子:
x=rnorm(100)
mod1=arima(x,order = c(1,0,1))
modelsummary(mod1, output = 'kableExtra', coef_rename = c('ar1'='$x_{t-1}$',
'ma1'='$\epsilon_{t-1}$')) %>%
kable_styling(latex_options = 'HOLD_position')
在上面的 table 中,我试图将变量重命名为数学样式,如果名称按原样给出,这将在 kable()
中起作用。
...
省略号自动向前推到 kbl
函数。 escape
等有效参数可以直接传递给 modelsummary
.
请注意,由于 output
参数文档的“post-处理”注释中解释的原因,我更喜欢在 post- 之前直接指定我需要的输出格式处理函数,否则 kableExtra
将默认准备一个 HTML table:
library(kableExtra)
library(modelsummary)
x=rnorm(100)
mod1=arima(x,order = c(1,0,1))
modelsummary(
mod1,
output = "latex",
coef_rename = c('ar1'='$x_{t-1}$', 'ma1'='$\epsilon_{t-1}$'),
escape = FALSE)
\begin{table}[H]
\centering
\begin{tabular}[t]{lc}
\toprule
& Model 1\
\midrule
$x_{t-1}$ & 0.337\
& (0.368)\
$\epsilon_{t-1}$ & -0.490\
& (0.335)\
intercept & 0.007\
& (0.068)\
\midrule
Num.Obs. & 100\
AIC & 267.6\
BIC & 278.0\
Log.Lik. & -129.808\
\bottomrule
\end{tabular}
\end{table}
另请注意,modelsummary
已经在内部调用了一次 kable_styling
,并且将 kable_styling
添加到 kableExtra
生产的乳胶 table 有时会产生奇怪的结果结果是因为 kableExtra
将在 table 中嵌套 table。 (注意:我计划就此向 kableExtra
提交错误修正。)
data.frame(a = 1:2, b = 2:3) %>%
kbl("latex") %>%
kable_styling() %>%
kable_styling() %>%
kable_styling()
\begin{table}[H]
\centering\begin{table}[H]
\centering\begin{table}[H]
\centering
\begin{tabular}[t]{r|r}
\hline
a & b\
\hline
1 & 2\
\hline
2 & 3\
\hline
\end{tabular}
\end{table}
\end{table}
\end{table}
我最近从 modelsummary
。 modelsummary
创建的摘要 table 的输出似乎可以是 class kable_knitr
可以从 kableExtra
馈送到其他函数,例如 kable_styling
.
但是,我对如何从函数 kable()
到 modelsummary()
函数中指定其他选项的值感到困惑。一种明显的方法可能是获得 data.frame
输出,然后将其输入 kable
。有没有更好的选择(这样我就可以避免修复 data.frame
输出?
我特别在寻找 kable()
选项,escape=F
(在乳胶输出中插入希腊字母 - 参见 booktabs=T
.
一个可重现的例子:
x=rnorm(100)
mod1=arima(x,order = c(1,0,1))
modelsummary(mod1, output = 'kableExtra', coef_rename = c('ar1'='$x_{t-1}$',
'ma1'='$\epsilon_{t-1}$')) %>%
kable_styling(latex_options = 'HOLD_position')
在上面的 table 中,我试图将变量重命名为数学样式,如果名称按原样给出,这将在 kable()
中起作用。
...
省略号自动向前推到 kbl
函数。 escape
等有效参数可以直接传递给 modelsummary
.
请注意,由于 output
参数文档的“post-处理”注释中解释的原因,我更喜欢在 post- 之前直接指定我需要的输出格式处理函数,否则 kableExtra
将默认准备一个 HTML table:
library(kableExtra)
library(modelsummary)
x=rnorm(100)
mod1=arima(x,order = c(1,0,1))
modelsummary(
mod1,
output = "latex",
coef_rename = c('ar1'='$x_{t-1}$', 'ma1'='$\epsilon_{t-1}$'),
escape = FALSE)
\begin{table}[H]
\centering
\begin{tabular}[t]{lc}
\toprule
& Model 1\
\midrule
$x_{t-1}$ & 0.337\
& (0.368)\
$\epsilon_{t-1}$ & -0.490\
& (0.335)\
intercept & 0.007\
& (0.068)\
\midrule
Num.Obs. & 100\
AIC & 267.6\
BIC & 278.0\
Log.Lik. & -129.808\
\bottomrule
\end{tabular}
\end{table}
另请注意,modelsummary
已经在内部调用了一次 kable_styling
,并且将 kable_styling
添加到 kableExtra
生产的乳胶 table 有时会产生奇怪的结果结果是因为 kableExtra
将在 table 中嵌套 table。 (注意:我计划就此向 kableExtra
提交错误修正。)
data.frame(a = 1:2, b = 2:3) %>%
kbl("latex") %>%
kable_styling() %>%
kable_styling() %>%
kable_styling()
\begin{table}[H]
\centering\begin{table}[H]
\centering\begin{table}[H]
\centering
\begin{tabular}[t]{r|r}
\hline
a & b\
\hline
1 & 2\
\hline
2 & 3\
\hline
\end{tabular}
\end{table}
\end{table}
\end{table}