2017-08-16 99 views
0

我想使用RStudio中的package stargazer来生成我的数据的汇总表。出于某种原因,当我使用html或latex代码时,我无法在输出中查看表格,但是当我以文本形式输出时,我可以看到它。Stargazer输出是代码,而不是表格

一个例子:

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或乳胶表?

任何帮助非常感谢!

回答

1

要呈现在PDF中观星表,你可以将此代码添加到空[R降价(.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') 

``` 

形如:

stargazer table in pdf doc

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

包括stargaz在Microsoft Word文档(例如.doc或.docx)中的呃表中,请遵循以下过程:使用out参数将输出保存到.htm或.html文件中。在您的网络浏览器中打开结果文件。将表格从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') 

``` 

这会导致原材料,但可读的表:

raw stargazer table in word

+0

这适用于R Markdown文档!谢谢!现在,如果我想用普通的RStudio代码生成相同的文件(pdf或word),我该怎么做?代码不直接翻译... – Dorton

+0

如果你的意思是从控制台生成文档,你可以尝试'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

相关问题