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

6

我尝试在Rmd文件中包含lm对象的摘要,使用了以下代码,但失败了。你能帮我做到吗?

```{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个回答

6
$$ 语法只适用于数学表达式,而您尝试在其中放置一张表格是行不通的。据我所知,apsrtable 仅适用于 LaTeX,但 LaTeX 和 Markdown 非常不同——很难完全使用 Markdown 重做 LaTeX。我认为人们发明 $$ 语法是因为它得到了 MathJax 的广泛支持,并且还有许多基于原始 Markdown 的变体/口味。
目前,您可以考虑以下几点:
  • 使用 xtableasciiR2HTML 包生成 HTML 表格
  • 请求 apsrtable 的包作者支持 HTML 表格

3

使用`pander˙my_model以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

0

转载我的答案使用Rmarkdown中的apsrtable制作多个lm()模型表格:

可以在pdf_document中使用apsrtable和stargazer完成,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")
```

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