我需要在R中完全生成一个LaTeX表,以便在分析过程中如果表中的值发生变化,则表的格式将保持不变。
我正在将价值矩阵(如果有经济学家,则提供RCT的资产负债表)传递给观星人。它基本上可以使表格正确。但是,第一列居中对齐,我需要将其左对齐。
迄今为止,尚无在线解决方案。
我已经阅读了此解决方案(how to align stargazer table to the left when type="latex"?),并能够创建一个字符串,该字符串将“ ccccc”替换为“ lcccc”,将其粘贴到.tex文件后,确实可以使我的第一列左对齐。但是它不会将cat(out)的结果输出到.tex文件中。我可以将其复制粘贴到新文件中,但是每次我运行代码并为错误留出空间时,就必须为我为项目创建的每个表重复此操作。我需要我的代码可以完全复制。
我曾希望下载starpolishr(https://github.com/ChandlerLutz/starpolishr)软件包可以使我更轻松地在R中编辑代码,但是我还没有弄清楚如何以这种身份使用它。
这是我的矩阵
balance.table <- rbind(balance.table, num.kids, num.awc, f.stat, f.stat.prob)
使用stargazer导出到balance_table.tex
stargazer(balance.table, type="latex",
title ="Balance table",
digits = 2,
float = FALSE,
header = TRUE,
rownames = FALSE,
out = paste0(exhibits, "balance_table.tex"))
由此,LaTeX输出的第一行是:
\begin{tabular}{@{\extracolsep{5pt}} ccccc}
这是我根据上面链接的示例进行的尝试:
starout <- capture.output(
stargazer(balance.table, type="latex",
title ="Balance table",
digits = 2,
float = FALSE,
header = FALSE,
rownames = FALSE,
out = paste0(exhibits, "balance_table2.tex")))
starout <- sub(" ccccc", " lcccc", starout)
cat(starout)
这将导致更新的LaTeX代码的第一行:
\begin{tabular}{@{\extracolsep{5pt}} lcccc}
但是,我现在无法将其导出到LaTeX。输出是一个名为“ balance_table2.tex”的文件,但与“ balance_table.tex”相同,并且具有“ ccccc”而不是“ lcccc”。
是否有某种方法可以将cat()的结果导出到.tex文件?还是有一种方法可以使用starpolishr或其他完全可复制的方法进行对齐?
谢谢!
您可以在替换后使用writeLines(starout, "balance_table.tex")
。有关某些替代解决方案,请参见此SO post。