使用Rstudio和Knitr的观星者

问题描述 投票:13回答:4

我正在努力使用RStudio在knitr中使用stargazer输出。例如,我将下面的代码粘贴到.Rmd文件中,然后单击“编织HTML”。 [和]之间的第一个块呈现为方程式。第二个街区来自观星者。它仍然是代码。当我将第二个块(少于[和]]粘贴到Sweave文件中然后单击“编译为PDF”时,代码将呈现为表格。我安装了MikTex和Stargazer的第3版。

当单击编译PDF时,答案inserting stargazer or xable table into knitr document在Sweave文件(Rnw)中为我工作。在Rmd文件中,单击Knit HTML时不会呈现tex。

如何将stargazer输出放入Rmd文件,以便Knit HTML将乳胶代码转换为表格? (我是Latex的新手,我不确定我可以删除哪些代码,所以请为长段道歉。)

\[
\begin{aligned}
\dot{x} & = \sigma(y-x) \\
\dot{y} & = \rho x - y - xz \\
\dot{z} & = -\beta z + xy
\end{aligned}
\]

\[
\documentclass{article}

\begin{document}


% Table created by StarGazer v.3.0.1 by Marek Hlavac, Harvard University. E-mail: hlavac at fas.harvard.edu
% Date and time: Sun, Feb 03, 2013 - 11:34:52 AM
\begin{table}[htb] \centering 
  \caption{} 
  \label{} 
\footnotesize 

\begin{tabular}{@{\extracolsep{5pt}}lc} 
\\[-1.8ex]\hline 
\hline \\[-1.8ex] 
 & \multicolumn{1}{c}{\textit{Dependent variable:}} \\ 
\cline{2-2} 
\\[-1.8ex] & Rate \\ 
\hline \\[-1.8ex] 
 pole & $0.071^{***}$ \\ 
  & $(0.020)$ \\ 
  & \\ 
 post & $0.095^{***}$ \\ 
  & $(0.019)$ \\ 
  & \\ 
 Constant & $-5.784^{***}$ \\ 
  & $(1.667)$ \\ 
  & \\ 
\hline \\[-1.8ex] 
Observations & $46$ \\ 
Residual Std. Error & $2.378 (df = 43)$ \\ 
\hline 
\hline \\[-1.8ex] 
\textit{Note:}  & \multicolumn{1}{r}{$^{*}$p$<$0.1; $^{**}$p$<$0.05; $^{***}$p$<$0.01} \\ 
\normalsize 
\end{tabular} 
\end{table} 

\end{document}
\]
r knitr stargazer
4个回答
11
投票

由于这个话题有点陈旧,我会假设手头的问题是以某种方式使用带有编织器的观星者,而不是本身将观星者对象转换为HTML。

作为观星者的狂热粉丝,我提出了以下工作流程:

  1. 将我的代码写在.Rmd文件中。
  2. 将它编织成.md。 Stargazer表在结果markdown文件中保留为LaTeX代码。
  3. 使用pandoc将markdown文件转换为PDF。 Pandoc将LaTeX代码转换为适当的表。或者,可以使用带有knitr插件的LyX来获得以PDF格式输出的观星表。

如果想在MS Word中使用观星表,我发现的最好方法是使用LaTeX2RTF。虽然最顶部的单元有点扭曲,但修复它是一个删除错误的空单元的问题。对于其余的表,表将被保留,并可以粘贴/导入到Word中。

这两种策略有助于在LaTeX之外使用观星者。希望能帮助到你。


26
投票

使用以下代码,您将获得一个工作版本

```{r, results='asis'}
stargazer(model)
```

转换为pdf时,以下代码适用于stargazer 4.0:

```{r, results='asis'}
stargazer(model, header=FALSE, type='latex')
```

5
投票

回到这个问题。

我想使用相同的markdown文件在带有knitr的RStudio中生成html和pdf输出。也就是说,在RStudio中我想按下编织按钮,并且可以选择编织HTMl输出或pdf输出。目前,我没有兴趣编织一个单词/ OpenOffice文档。

我使用了来自Jake Russ的非常有用的stargazer cheatsheet。这锻炼了大多数观星者的功能。它是一个R MArkdown文件,其中chunk选项results ='asis'为那些产生stargazer输出的块设置。

stargazer命令本身有一个参数'type'。默认值为type ='latex'在Jake Russ的cheatsheet中,用于生成网页,始终使用type ='html'。

如果您尝试将其编织为pdf,则根本不起作用。表格以长列表形式出现,每行一个表格单元格,没有格式化,占用多个页面,没有格式化。

我可以做的最小的变化是让我在RStudio中生成漂亮的pdf是全局替换所有的

type='html'

type='latex'

(请注意,两者都出现在文档的文本中以及stargazer命令中,因此需要小心!)

这有效!据我所知,pdf是网页的忠实复制品,这正是我想要的。

如果我离开,试图编写OpenOffice文档

type='latex'

输出中的每个表都被此文本替换: -

% Table created by stargazer v.5.2 by Marek Hlavac, Harvard University. E-mail: hlavac at fas.harvard.edu % Date and time: Tue, Sep 01, 2015 - 22:22:29

如果我恢复了

type='html'

然后每个表被写入,每行一个单元格,在页面的一侧没有格式化!


4
投票

除了之前的答案,也许作为一个更简单的解决方案,stargazer可以在html代码中输出表格,这样当Rmd文件被编织成html时,会创建一个表而不是tex代码。我相信stargazer函数现在可以通过设置type = 'html'直接导出到html。

因此,例如,给定模型拟合lm1,您将在Rmd文件中使用以下代码:

stargazer(lm1, type = 'html')

无论您希望最终输出是html还是pdf,这都有效。

© www.soinside.com 2019 - 2024. All rights reserved.