在Rmd文件中包含apsrtable(或stargazer)输出

时间:2013-02-10 11:51:18

标签: windows r latex knitr r-markdown

我尝试将lm对象的摘要包含在Rmd文件中,使用如下代码,但它不起作用。你能帮帮我吗?

```{r summary_lm, results='asis', echo=FALSE, comment=NA}

library(apsrtable)
my_model <- lm(y ~ x, data = data.frame(y = rnorm(10), x = 1:10))
res <- apsrtable(my_model) # my_model is a linear regression model (lm)

cat("$$latex \n",res,"\n$$ \n")

```

3 个答案:

答案 0 :(得分:6)

$$语法仅适用于数学表达式,并且您试图在其中放置一个表,这将无效。据我所知,apsrtable仅适用于LaTeX,但LaTeX和Markdown非常不同 - 您很少希望可以完全使用Markdown重做LaTeX。我认为人们为Markdown发明了$$语法,因为MathJax很好地支持它,并且还注意到有很多基于原始Markdown的变体/风格。

目前您可以考虑:

  • 使用xtableasciiR2HTML包生成HTML表格
  • 请求apsrtable的软件包作者支持HTML表格

答案 1 :(得分:3)

如果将my_model包含在`pander˙的Markdown格式中,那么

> library(pander)
> pander(my_model)

--------------------------------------------------------------
     &nbsp;        Estimate   Std. Error   t value   Pr(>|t|) 
----------------- ---------- ------------ --------- ----------
      **x**         0.1174      0.1573     0.7465     0.4767  

 **(Intercept)**   -0.2889      0.9759     -0.296     0.7748  
--------------------------------------------------------------

Table: Fitting linear model: y ~ x

或者使用PHP MarkdownExtra / rmarkdown格式:

> panderOptions('table.style', 'rmarkdown')
> pander(my_model)


|      &nbsp;       |  Estimate  |  Std. Error  |  t value  |  Pr(>|t|)  |
|:-----------------:|:----------:|:------------:|:---------:|:----------:|
|       **x**       |   0.1174   |    0.1573    |  0.7465   |   0.4767   |
|  **(Intercept)**  |  -0.2889   |    0.9759    |  -0.296   |   0.7748   |

Table: Fitting linear model: y ~ x

答案 2 :(得分:0)

将我的answer交叉发布到Table of multiple lm() models using apsrtable in Rmarkdown

这可以在pdf_document中使用apsrtable和stargazer完成,后者还支持HTML。

---
title: "stargazer"
author: "hplieninger"
date: "3 August 2018"
output: pdf_document
header-includes:
    - \usepackage{dcolumn}
---

```{r}
m1 <- lm(Fertility ~ Education , data = swiss)
m2 <- lm(Fertility ~ Education + Agriculture, data = swiss)
m3 <- lm(Fertility ~ . , data = swiss)
```

```{r, results='asis'}
apsrtable::apsrtable(m1, m2, m3, Sweave = TRUE)
```

```{r, results='asis'}
# If output: pdf_document
stargazer::stargazer(m1, m2, m3)
# If output: html_document
# stargazer::stargazer(m1, m2, m3, type = "html")
```