Таблицы регрессии в формате Markdown (для гибкого использования в R Markdown v2)
Новая версия R Markdown основана на pandoc, поэтому вы можете легко изменить формат вывода.
Моя проблема состоит в том, чтобы получить отформатированные таблицы уценки, например, из регрессионных моделей, потому что таблицы LATEX и HTML не выдерживают преобразования pandoc.
Я знаю пакеты, которые генерируют вывод LATEX/HTML из множества моделей (stargazer, texreg, asprtable...), и я знаю о функциях / пакетах, которые генерируют таблицы уценки из фреймов данных и матриц, но не из других объектов.
Какие-либо предложения?
6 ответов
Мой выше комментарий более подробно:
Определите несколько моделей для воспроизводимого примера:
lm0 <- lm(hp ~ wt, mtcars) lm1 <- lm(qsec ~ hp, mtcars) lm2 <- lm(qsec ~ wt, mtcars)
Создайте сравнительную таблицу из тех:
require(memisc) mtable123 <- mtable('Model 1' = lm0, 'Model 2' = lm1, 'Model 3' = lm2, summary.stats = c('R-squared','F','p','N'))
Визуализировать таблицу уценок простым вызовом
pander
:pander(mtable123)
Наслаждайтесь результатом:
-------------------------------------------------- Model 1 Model 2 Model 3 ----------------- ---------- ---------- ---------- **(Intercept)** -1.821\ 20.556***\ 18.875***\ (32.325) (0.542) (1.103) **wt** 46.160***\ \ -0.319\ (9.625) (0.328) **hp** \ -0.018***\ \ (0.003) **R-squared** 0.434 0.502 0.031 **F** 22.999 30.190 0.945 **p** 0.000 0.000 0.339 **N** 32 32 32 --------------------------------------------------
Спасибо Роману Цегельскому за внедрение этой замечательной функции в GSoC 2014.
Просто создайте таблицы HTML или LATEX. Все, что вам нужно сделать, это просто добавить results='asis' к коду кода. Это оставит вывод как есть.
Например, этот код, использующий xtable, работает для меня.
```{r,results='asis'}
x<-rnorm(100)
y<-rnorm(100)
lm <- lm(y~x)
library(xtable)
print(xtable(summary(lm)),type='html')
```
Вот что я сделал несколько часов назад:
Некоторые данные:
```{r} lm1 <- lm(qsec ~ hp, mtcars) lm2 <- lm(qsec ~ wt, mtcars) ```
Мы используем пакет
sjPlot
```{r} library(sjPlot) tab_model(lm1,lm2, file="output.html")# You have to save the table in html format. ```
Следующая часть должна быть вне блока в уценке:
htmltools:: includeHTML ("output.html")
Другой способ использования sjPlot (отличная библиотека для удобного представления результатов регрессии) - использовать функцию no.output:
library(sjmisc)
library(sjPlot)
library(magrittr)
lm(qsec ~ wt, mtcars) %>%
sjt.lm(no.output = TRUE, show.se = TRUE) %>%
return() %>% .[["knitr"]] %>% asis_output
Я обновляю это примером, который использует популярные (и более новые) пакеты knitr и kableExtra.
library(knitr)
library(xtable)
lm(hp ~ wt, mtcars) %>%
summary() %>%
xtable() %>%
kable()
Теперь вы можете получить доступ ко всем классным функциям форматирования таблиц, доступным в пакете Хао Чжу kableExtra.
Пакет huxtable теперь может печатать красиво отформатированную таблицу регрессии. См. Документ https://hughjonesd.github.io/huxtable/huxreg.html