【问题标题】:Stargazer output is code, not a tableStargazer 输出是代码,而不是表格
【发布时间】:2017-08-16 23:29:24
【问题描述】:

我正在尝试使用 RStudio 中的 stargazer 包来生成我的数据的汇总表。由于某种原因,当我使用 html 或 latex 代码时,我无法在输出中查看表格,但是当我输出为文本时,我可以看到它。

一个例子:

library(stargazer)
stargazer(attitude, type = 'text')

输出看起来像(应该是这样):

## 
## =====================================
## Statistic  N   Mean  St. Dev. Min Max
## -------------------------------------
## rating     30 64.633  12.173  40  85 
## complaints 30 66.600  13.315  37  90 
## privileges 30 53.133  12.235  30  83 
## learning   30 56.367  11.737  34  75 
## raises     30 64.633  10.397  43  88 
## critical   30 74.767  9.895   49  92 
## advance    30 42.933  10.289  25  72 
## -------------------------------------

将其设置为乳胶:

stargazer(attitude, type = 'latex')

给出输出:

## 
## % Table created by stargazer v.5.2 by Marek Hlavac, Harvard University. E-mail: hlavac at fas.harvard.edu
## % Date and time: Wed, Aug 16, 2017 - 4:28:34 PM
## \begin{table}[!htbp] \centering 
##   \caption{} 
##   \label{} 
## \begin{tabular}{@{\extracolsep{5pt}}lccccc} 
## \\[-1.8ex]\hline 
## \hline \\[-1.8ex] 
## Statistic & \multicolumn{1}{c}{N} & \multicolumn{1}{c}{Mean} & \multicolumn{1}{c}{St. Dev.} & \multicolumn{1}{c}{Min} & \multicolumn{1}{c}{Max} \\ 
## \hline \\[-1.8ex] 
## rating & 30 & 64.633 & 12.173 & 40 & 85 \\ 
## complaints & 30 & 66.600 & 13.315 & 37 & 90 \\ 
## privileges & 30 & 53.133 & 12.235 & 30 & 83 \\ 
## learning & 30 & 56.367 & 11.737 & 34 & 75 \\ 
## raises & 30 & 64.633 & 10.397 & 43 & 88 \\ 
## critical & 30 & 74.767 & 9.895 & 49 & 92 \\ 
## advance & 30 & 42.933 & 10.289 & 25 & 72 \\ 
## \hline \\[-1.8ex] 
## \end{tabular} 
## \end{table}

最后,将其设置为 html:

stargazer(attitude, type = 'html')

给出输出:

## 
## <table style="text-align:center"><tr><td colspan="6" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">Statistic</td><td>N</td><td>Mean</td><td>St. Dev.</td><td>Min</td><td>Max</td></tr>
## <tr><td colspan="6" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">rating</td><td>30</td><td>64.633</td><td>12.173</td><td>40</td><td>85</td></tr>
## <tr><td style="text-align:left">complaints</td><td>30</td><td>66.600</td><td>13.315</td><td>37</td><td>90</td></tr>
## <tr><td style="text-align:left">privileges</td><td>30</td><td>53.133</td><td>12.235</td><td>30</td><td>83</td></tr>
## <tr><td style="text-align:left">learning</td><td>30</td><td>56.367</td><td>11.737</td><td>34</td><td>75</td></tr>
## <tr><td style="text-align:left">raises</td><td>30</td><td>64.633</td><td>10.397</td><td>43</td><td>88</td></tr>
## <tr><td style="text-align:left">critical</td><td>30</td><td>74.767</td><td>9.895</td><td>49</td><td>92</td></tr>
## <tr><td style="text-align:left">advance</td><td>30</td><td>42.933</td><td>10.289</td><td>25</td><td>72</td></tr>
## <tr><td colspan="6" style="border-bottom: 1px solid black"></td></tr></table>

所以 R 正在生成代码,而不是表格。有谁知道为什么会这样?不幸的是,我在不允许我访问互联网的计算机上执行此操作,因此我不得不通过 cran 和 USB 驱动器手动安装所有软件包,因此在安装所需的各种软件包时我可能错过了一些东西。

我的最终目标是生成一个表格,该表格将导出为 pdf 或 word 文档,可能作为 r markdown 脚本的一部分。所以我的问题是为什么我不能生成 html 或 Latex 表?

【问题讨论】:

    标签: r r-markdown stargazer


    【解决方案1】:

    要以 pdf 格式呈现观星表,您可以将此代码添加到空的 R markdown (.Rmd) 文件中:

    ---
    output: pdf_document
    ---
    
    ```{r setup, include=FALSE}
    knitr::opts_chunk$set(echo = FALSE)
    library(stargazer)
    ```
    
    Here is the latex table in a PDF document:
    
    ```{r mylatextable, results = "asis"}
    stargazer(attitude, type = 'latex')
    
    ```
    

    显示为:

    导出到 word 涉及以下内容(取自help(stargazer)):

    要在 Microsoft Word 文档(例如 .doc 或 .docx)中包含 stargazer 表格,请遵循以下步骤: 使用 out 参数将输出保存到 .htm 或 .html 文件中。在您的网络浏览器中打开生成的文件。将表格从网络浏览器复制并粘贴到您的 Microsoft Word 文档中。

    或者,如果表格的外观不太重要,您可以将以下内容放在一个空的 .Rmd 文件中:

    ---
    output: word_document
    ---
    
    ```{r setup, include=FALSE}
    knitr::opts_chunk$set(echo = FALSE)
    library(stargazer)
    ```
    
    Stargazer table in microsoft word:
    
    ```{r word_table, comment = ''}
    stargazer(attitude, type = 'text')
    
    ```
    

    这会产生一个原始但可读的表格:

    【讨论】:

    • 这非常适用于 R Markdown 文档!谢谢!现在,如果我想使用普通的 RStudio 代码生成相同的文件(pdf 或 word),我该怎么做?代码没有直接翻译...
    • 如果您的意思是从控制台生成文档,您可以尝试 stargazer(attitude, type = 'text', out = 'foo.doc') 对我有用(注意使用 .docx 无效)。尽管这种方法作为文本 (stargazer(attitude, type = 'text', out = 'foo.txt')) 或 html (stargazer(attitude, type = 'text', out = 'foo.html')) 可能会得到更好的支持。否则,可以使用 rmarkdown notebook rmarkdown.rstudio.com/r_notebooks.html 交互式运行代码
    【解决方案2】:

    发生这种情况是因为stargazer 旨在生成代码。因此,它就像一个转译器。您可以使用 out 参数将 HTML 或 LaTeX 保存到文件中,然后在 Internet 浏览器或本地 LaTeX 应用程序中呈现它。您还可以使用Overleaf 在线渲染 LaTeX。虽然您可以将stargazer 与 Word 一起使用,但我不建议您这样做。该软件包首先设计用于纯 LaTeX 文档。我已经将它与 Word 和 LaTeX 一起使用,没有可比性。 LaTeX 中的结果很漂亮。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 2021-12-19
      • 1970-01-01
      • 1970-01-01
      • 2019-08-12
      • 2014-09-03
      相关资源
      最近更新 更多