Stargazer 选项:resizebox 和 label
Stargazer options: resizebox and label
是否可以将 resizebox 合并到 R 中的 stargazer 中?我正在尝试创建一个太宽而不适合的 table,即使在横向视角下也是如此。我手动将 resizebox{\textwidth}{!} { \begin{tabular} \end{tabular} } 添加到 .tex 文件中,我喜欢它的外观。但是,我希望我的 .Rnw 文件是完整的,这样我就可以完美地生成 pdf,而无需对 .tex 文件进行额外的更改。
在相关说明中,stargazer 导致 pdflatex 在未指定标签时输出多个警告,因为它包括 \label{} 。这些不会影响 pdf 的创建,但会在存在其他错误时造成混淆。
同样,我可以从 .tex 文件中手动删除这些行,或分配标签名称。但是,我想简单地告诉 stargazer 根本不要包括这一行。
要回答问题的第 2 部分,您可以使用 label
来标记表格。这样您就不必从 .tex
文件中手动删除空的 \label{} 。您还可以使用 \ref{your.table.label}.
来引用您的表格
stargazer(df, title = "Statistical Summary", label="your.table.label", table.placement = "H")
这并不理想,但您可以使用 capture.output()
和 gsub()
.
手动操作 stargazer 输出的 LaTeX 代码
table <- capture.output({ # Store the stargazer output in a string
stargazer(iris, header=F) # e.g.
})
table <- gsub("\begin{tabular}","\resizebox{0.9\textwidth}{!}{\begin{tabular}", table,fixed=T)
table <- gsub("\end{tabular}","\end{tabular}}", table,fixed=T)
cat(table)
如果您在多个地方需要它,您也可以将该过程提取到一个方法中。
我发现的最佳方法是使用将 stargazer 选项 float 设置为 FALSE,然后使用 cat() 手动将 scalebox 置于浮动环境中;例如:
<< results='asis', echo = FALSE>>=
cat("\begin{table}[!htbp]")
cat("\centering")
cat("\caption{OLS Regression Results by Metal Level}")
cat("\label{OLS}")
cat("\scalebox{.8}{")
stargazer(models$model1OLS,
float = FALSE)
cat("}") # for the end of the scalebox
cat("\end{table}")
@
请注意,您还必须手动为 table 添加标签、居中和标题。这几乎肯定会使用 resizebox 而不是 scalebox,但我还没有尝试过。
是否可以将 resizebox 合并到 R 中的 stargazer 中?我正在尝试创建一个太宽而不适合的 table,即使在横向视角下也是如此。我手动将 resizebox{\textwidth}{!} { \begin{tabular} \end{tabular} } 添加到 .tex 文件中,我喜欢它的外观。但是,我希望我的 .Rnw 文件是完整的,这样我就可以完美地生成 pdf,而无需对 .tex 文件进行额外的更改。
在相关说明中,stargazer 导致 pdflatex 在未指定标签时输出多个警告,因为它包括 \label{} 。这些不会影响 pdf 的创建,但会在存在其他错误时造成混淆。
同样,我可以从 .tex 文件中手动删除这些行,或分配标签名称。但是,我想简单地告诉 stargazer 根本不要包括这一行。
要回答问题的第 2 部分,您可以使用 label
来标记表格。这样您就不必从 .tex
文件中手动删除空的 \label{} 。您还可以使用 \ref{your.table.label}.
stargazer(df, title = "Statistical Summary", label="your.table.label", table.placement = "H")
这并不理想,但您可以使用 capture.output()
和 gsub()
.
table <- capture.output({ # Store the stargazer output in a string
stargazer(iris, header=F) # e.g.
})
table <- gsub("\begin{tabular}","\resizebox{0.9\textwidth}{!}{\begin{tabular}", table,fixed=T)
table <- gsub("\end{tabular}","\end{tabular}}", table,fixed=T)
cat(table)
如果您在多个地方需要它,您也可以将该过程提取到一个方法中。
我发现的最佳方法是使用将 stargazer 选项 float 设置为 FALSE,然后使用 cat() 手动将 scalebox 置于浮动环境中;例如:
<< results='asis', echo = FALSE>>=
cat("\begin{table}[!htbp]")
cat("\centering")
cat("\caption{OLS Regression Results by Metal Level}")
cat("\label{OLS}")
cat("\scalebox{.8}{")
stargazer(models$model1OLS,
float = FALSE)
cat("}") # for the end of the scalebox
cat("\end{table}")
@
请注意,您还必须手动为 table 添加标签、居中和标题。这几乎肯定会使用 resizebox 而不是 scalebox,但我还没有尝试过。