Таблицы регрессии в формате Markdown (для гибкого использования в R Markdown v2)

Новая версия R Markdown основана на pandoc, поэтому вы можете легко изменить формат вывода.

Моя проблема состоит в том, чтобы получить отформатированные таблицы уценки, например, из регрессионных моделей, потому что таблицы LATEX и HTML не выдерживают преобразования pandoc.

Я знаю пакеты, которые генерируют вывод LATEX/HTML из множества моделей (stargazer, texreg, asprtable...), и я знаю о функциях / пакетах, которые генерируют таблицы уценки из фреймов данных и матриц, но не из других объектов.

Какие-либо предложения?

6 ответов

Решение

Мой выше комментарий более подробно:

  1. Определите несколько моделей для воспроизводимого примера:

    lm0 <- lm(hp ~ wt, mtcars)
    lm1 <- lm(qsec ~ hp, mtcars)
    lm2 <- lm(qsec ~ wt, mtcars)
    
  2. Создайте сравнительную таблицу из тех:

    require(memisc)
    mtable123 <- mtable('Model 1' = lm0,
                'Model 2' = lm1,
                'Model 3' = lm2,
                summary.stats = c('R-squared','F','p','N'))
    
  3. Визуализировать таблицу уценок простым вызовом pander:

    pander(mtable123)
    
  4. Наслаждайтесь результатом:

    --------------------------------------------------
         &nbsp;        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')
```

Вот что я сделал несколько часов назад:

  1. Некоторые данные:

    ```{r}
    lm1 <- lm(qsec ~ hp, mtcars)
    lm2 <- lm(qsec ~ wt, mtcars)
    ```
    
  2. Мы используем пакет 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

Другие вопросы по тегам