使用lm()
函数在一个格式良好的表中一起显示多个模型的结果。该表将在.Rmd文件中生成并输出到PDF文档。
在使用R和RStudio的可重复研究中,有一个示例使用apsrtable()
函数并排显示多个模型。本书提供以下代码(第173-174页):
代码
\begin{table}
\caption{Example Nested Estimates Table with \emph{aprstable}}
\label{BasicApsrTableExample}
\begin{center}
<<results= asis , echo=FALSE>>=
# Load apsrtable package
library(apsrtable)
# Create nested regression model table
apsrtable(M1, M2, M3, M4, M5, Sweave = TRUE,
stars = "default")
@
\end{center}
\end{table}
使用M1 ... M5
以块的形式创建模型M2 <- lm(Examination ~ Education + Agriculture, data = swiss)
。
输出
如下书所示,下面是结果的屏幕抓取。这正是我想在.Rmd文件中创建并输出到PDF文档的表。
尝试1
当我尝试使用里面的代码块 - 如下所示 - 并输出到PDF时,我收到一条错误消息:Error: $ operator is invalid for atomic vectors
```{r}
t.model2 = xtable(model2,label = NULL)
t.model3 = xtable(model3,label = NULL)
library(apsrtable)
apsrtable(t.model2, t.model3, Sweave = TRUE, stars = "default")
```
尝试2 当我使用上面的代码在之外的代码块时,.Rmd文件输出到PDF,但显示以下内容:
我的问题
相关的Stack Overflow问题
答案 0 :(得分:0)
您需要注意以下两件事:
results='asis'
\usepackage{dcolumn}
必须位于帮助文件中所述的序言中。另一个选择是stargazer软件包,它不仅可以编织为PDF,还可以编织为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")
```