Stargazer输出的是代码,而不是表格。

8
我正在尝试使用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 
## -------------------------------------

将其设置为LaTeX:

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表格?
2个回答

12

要在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')

```

其外观如下:

pdf文件中的星际旅行者表

导出到Word需要按照以下步骤进行(摘自help(stargazer)):

  

为了将星表嵌入Microsoft Word文档(例如.doc或.docx),请按照以下步骤操作:使用“out”参数将输出保存到.htm或.html文件中。在Web浏览器中打开生成的文件。从Web浏览器中复制并粘贴表格到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')

```
这导致一个生硬但可读的表格:

Word中原始的但可读的stargazer表格


1
这对于 R Markdown 文档非常完美!谢谢!现在,如果我想使用普通的 RStudio 代码生成相同的文件(PDF 或 Word),我该怎么做?代码不能直接转换... - Dorton
1
如果您想从控制台生成文档,可以尝试使用 stargazer(attitude, type = 'text', out = 'foo.doc'),这对我有效(请注意,不要使用 .docx)。虽然这种方法可能更好地支持文本格式 (stargazer(attitude, type = 'text', out = 'foo.txt')) 或 HTML 格式 (stargazer(attitude, type = 'text', out = 'foo.html'))。否则,代码可以通过 rmarkdown 笔记本进行交互式运行 http://rmarkdown.rstudio.com/r_notebooks.html。 - markdly

2
这是因为stargazer被设计成生成代码。因此,它像一个转译器。您可以使用out参数将HTML或LaTeX保存到文件中,然后在互联网浏览器或本地LaTeX应用程序中呈现它。您还可以使用Overleaf在线呈现LaTeX。虽然您可以在Word中使用stargazer,但我不建议这样做。该软件包首先是为纯LaTeX文档使用而设计的。我已经在Word和LaTeX中使用过它,没有可比性。LaTeX中的结果非常好看。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接