【问题标题】:remove \begin{tabular} from Stargazer .tex output从 Stargazer .tex 输出中删除 \begin{tabular}
【发布时间】:2015-10-31 02:17:19
【问题描述】:

有没有简单的方法自动删除

\begin{tabular}{@{\extracolsep{5pt}}lc}

\end{tabular}

Stargazer LaTeX 输出的开头和结尾的行?

确实,我只需要内部的 LaTeX 代码并从 stargazer 生成的 TeX 文件中手动删除这些行完全是浪费时间......

【问题讨论】:

  • 我通常只是编写 python 脚本来获取 stargazer 的初始输出并根据需要对其进行修改。我发现这通常比与观星者本身争吵要容易。

标签: r latex tabular stargazer


【解决方案1】:

stargazer 中定义的用于创建 LaTeX 输出的每个函数都在(内部)包装函数 .stargazer.wrap 中定义。因此,自动更新组件并不容易。您要么必须复制在本地维护的包,要么在每次加载包时编辑 .stargazer.wrap 函数。

按照How do I override a non-visible function in the package namespace? 的指导方针,下面是后者的操作方法(管理您自己的副本需要类似的东西):

  1. 加载stargazer:

    > library(stargazer)
    
  2. 编辑stargazer命名空间/包内的.stargazer.wrap函数:

    > fixInNamespace(".stargazer.wrap", pos="package:stargazer")
    
  3. .data.frame.table.header 函数中查找并删除至少第 4206-4207 行:

    这两行用于打印tabular 标头。

  4. .publish.table 函数中查找并删除至少第 3385 行:

    这一行打印\end{tabular}(加上换行符)。

【讨论】:

    【解决方案2】:

    遇到同样的问题,在使用stargazer 创建表后,我最终只是在我的R 代码中添加了一些行:

    filename <- paste0("./my/path/", dplyr::last(list.files("./my/path/"))) # always loads the last file
    lines <- readLines(filename) # read file
    lines[1:4] <- ""           # I wanted to replace the first four lines
    lines[length(lines)] <- "" # as well as the last line
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-04
      相关资源
      最近更新 更多