Stargazer选项:调整大小和标签

时间:2015-02-22 19:42:19

标签: r latex knitr stargazer

是否可以将resizebox合并到R中的观星者?我正在尝试创建一个太宽而不适合的桌子,即使在景观方面也是如此。我手动将resizebox {\ textwidth} {!} {\ begin {tabular} \ end {tabular}}添加到.tex文件中,我喜欢它的外观。但是,我希望我的.Rnw文件完整,这样我就可以完美地生成pdf而无需对.tex文件进行额外的更改。

在相关的说明中,当没有指定标签时,stargazer会导致pdflatex输出多个警告,因为它包括\ label {}。这些不会影响pdf的创建,但是当出现其他错误时会导致混淆。

同样,我可以手动从.tex文件中删除这些行,或者指定标签名称。但是,我想告诉观星者根本不要包括这一行。

3 个答案:

答案 0 :(得分:2)

这不太理想,但您可以使用capture.output()gsub()手动操作来自观星者的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)

如果您需要在多个地方使用该程序,也可以将该程序提取出来。

答案 1 :(得分:1)

要回答问题的第2部分,您可以使用label标记表格。这样您就不必从.tex文件中手动删除空\ label {}。您还可以使用\ ref {your.table.label}。

来引用您的表格
stargazer(df, title = "Statistical Summary", label="your.table.label", table.placement = "H")

答案 2 :(得分:1)

我发现的最好的方法是使用将stargazer选项float设置为FALSE,然后使用cat()手动将scalebox放在float环境中;例如:

<< 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}")

@

请注意,您还必须手动标记,居中和标题表格。这几乎肯定会使用resizebox而不是scalebox,但我还没试过。