我尝试将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")
```
答案 0 :(得分:6)
$$
语法仅适用于数学表达式,并且您试图在其中放置一个表,这将无效。据我所知,apsrtable
仅适用于LaTeX,但LaTeX和Markdown非常不同 - 您很少希望可以完全使用Markdown重做LaTeX。我认为人们为Markdown发明了$$
语法,因为MathJax很好地支持它,并且还注意到有很多基于原始Markdown的变体/风格。
目前您可以考虑:
xtable
或ascii
或R2HTML
包生成HTML表格apsrtable
的软件包作者支持HTML表格答案 1 :(得分:3)
如果将my_model
包含在`pander˙的Markdown格式中,那么
> library(pander)
> pander(my_model)
--------------------------------------------------------------
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)
| | 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")
```