我在代码块中包含了resize.height=0.5,resize.width=0.5
,但仍无法调整stargazer生成的表格。谁能告诉我为什么?
我的代码块选项如下所示: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")
非常感谢任何帮助!
- 忘了提 - 我正在使用桌子上的投影仪。
我自己解决了这个问题:
要使用stargazer调整表格大小,您可以更改字体大小font.size=
,制作Stargazer单行single.row = TRUE
并更改column.sep.width = "1pt"
中列stargazer()
之间的空间。
虽然the link here建议使用print(stargazer(),scalebox='0.7')
,但它对我不起作用,也许是因为我正在使用Markdown和Beamer,但我不确定。仍然希望对此有更多的贡献。
我希望得到一个更简单的答案,但这有效!
以下是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
This comment on GitHub激励我将\resizebox{}
实施到stargazer()
。您可以使用resizebox.stargazer()
指定stargazer()
输出的表格的大小,其中包含tab.width
和/或tab.height
参数。要激活该功能,您需要首先运行以下代码:
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命令。