如何在 R Markdown 中调整观星者生成的表格大小



>我在代码块中包含resize.height=0.5,resize.width=0.5,但仍然无法调整观星者生成的表格的大小。谁能告诉我为什么?

我的代码块选项如下所示: echo=FALSE,warning=FALSE,results='asis',resize.height=0.5,resize.width=0.5}

观星者代码是这样的:

stargazer(did.student,student.control.kmt,student.control.neu,student.control.dpp,header = FALSE,
          title="DD Model",
          covariate.labels = c("Treatment","group","Treatment*group"),
          dep.var.labels = "attitude",
          column.labels   = c("","party1","Independent","party2"),
          label = "DiD-students")

将不胜感激任何帮助!

--忘了提 - 我在桌子上使用投影仪。

我自己解决了这个问题:

要使用观星器调整表格大小,您可以更改字体大小font.size=,使观星者单行single.row = TRUE并更改列之间的间距column.sep.width = "1pt" stargazer()

虽然这里的链接建议使用 print(stargazer(),scalebox='0.7') ,它可能对我不起作用,因为我将 Markdown 与 Beamer 一起使用,但我不确定。仍然希望在这方面做出更多贡献。

我希望得到一个更直接的答案,但这有效!

GitHub上的这条评论激发了我将resizebox{}实施到stargazer()中。您可以使用resizebox.stargazer()指定从带有tab.width和/或tab.height参数的stargazer()输出的表的大小。要激活该功能,您需要先运行以下代码:

resizebox.stargazer = function(..., tab.width = "!", tab.height = "!"
                               ){
  #Activate str_which() function:
  require(stringr) 
  #Extract the code returned from stargazer()
  res = capture.output(
    stargazer::stargazer(...)
    )
  #Render the arguments:
  tab.width = tab.width
  tab.height = tab.height
  #Attach "}" between end{tabular} and end{table}
  res = 
    prepend(res, "}", before = length(res))
  #Input resizebox before begin{tabular}
  res = 
    c(res[1:str_which(res, "^\\begin\{tabular\}.*")-1],
      paste0("\resizebox{",tab.width,"}{",tab.height,"}{%"),
      res[str_which(res, "^\\begin\{tabular\}.*"):length(res)]
      )
  #Produce the whole strings
  cat(res, sep = "n")
}

您可以通过以下方式指定表格大小,例如 resizebox.stargazer(..., tab.width = "0.7\textwidth") .请注意,您必须从\而不是编写TeX命令。

我会跟随@yuan宁并操纵观星者的选项。尝试以下 R markdown 的 PDF 输出:

stargazer(model_1, model_2, model_3, model_4, model_5,
          type = 'latex',
 
          header=FALSE, # to get rid of r package output text
          single.row = TRUE, # to put coefficients and standard errors on same line
          no.space = TRUE, # to remove the spaces after each line of coefficients
          column.sep.width = "3pt", # to reduce column width
          font.size = "small" # to make font size smaller
)

以下是 Carlos 将输出写入 LaTeX 文件的解决方案的替代方案:

mkTexTable <- function(..., file){
    tbl <- capture.output({
        stargazer(...)
    })    
    tbl <- gsub("\begin{tabular}", "\resizebox{\textwidth}{!}{\begin{tabular}", tbl, fixed = T)
    tbl <- gsub("\end{tabular}", "\end{tabular}}", tbl, fixed = T)
    fileConn <- file(file)
    writeLines(tbl, fileConn)
    close(fileConn)
}
mkTexTable(lm1, lm2, "texOutput.tex")

这篇文章也提供了一些帮助: https://stackoverflow.com/a/36018251/2289444

如果问题出在 html Rmd 文件上,您应该在 chuck 的开头指定{r, results = 'asis'},然后在观星者type = 'html'中指定。这对我有用。

相关内容

  • 没有找到相关文章

最新更新