6

I tried to include the summary of an lm object in an Rmd file, using code like the following but it didn't work. Could you help me do that?

```{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")

```
Yihui Xie
  • 28,913
  • 23
  • 193
  • 419
gd047
  • 29,749
  • 18
  • 107
  • 146

3 Answers3

6

The $$ syntax only applies to math expressions, and you were trying to put a table in it, which will not work. The apsrtable, as far as I understand, is for LaTeX only, but LaTeX and Markdown are very different -- there is little hope you can redo LaTeX entirely with Markdown. I think people invented the $$ syntax for Markdown due to the fact that it is well supported by MathJax, and also note there are many variants/flavors based on the original Markdown.

At the moment you may consider:

  • use the xtable or ascii or R2HTML package to generate HTML tables
  • request the package author of apsrtable to support HTML tables
Yihui Xie
  • 28,913
  • 23
  • 193
  • 419
3

What about including my_model in Markdown format with `panderĖ™:

> 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

Or in PHP MarkdownExtra/rmarkdown format:

> 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
daroczig
  • 28,004
  • 7
  • 90
  • 124
0

Cross-posting my answer to Table of multiple lm() models using apsrtable in Rmarkdown:

It can be done in a pdf_document with apsrtable and also stargazer, which additionally supports 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")
```
hplieninger
  • 3,214
  • 27
  • 32