Regression tables in Markdown format (for flexible use in R Markdown v2)

The new version of R Markdown is based on pandoc, so you can easyly change the output format.

My Problem is to get markdown formated tables from eg regression models, because LATEX and HTML tables do not survive the pandoc conversion.

I know packages that generate LATEX/HTML output from a variety of models (stargazer, texreg, asprtable...) and I'm aware of functions/packages, that generate markdown tables from data frames and matrices but not from other objects.

Any suggestions?


My above comment in more details:

  • Define a few models for reproducible example:

    lm0 <- lm(hp ~ wt, mtcars)
    lm1 <- lm(qsec ~ hp, mtcars)
    lm2 <- lm(qsec ~ wt, mtcars)
    
  • Create a comparative table from those:

    require(memisc)
    mtable123 <- mtable('Model 1' = lm0,
                'Model 2' = lm1,
                'Model 3' = lm2,
                summary.stats = c('R-squared','F','p','N'))
    
  • Render markdown table with a simple call to pander :

    pander(mtable123)
    
  • Enjoy the result:

    --------------------------------------------------
         &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    
    --------------------------------------------------
    

  • Thanks for Roman Tsegelskyi for implementing this nice feature in GSoC 2014.


    Just generate the HTML or LATEX tables. All you have to do is to just add results='asis' to the code chunk. It will leave the output as it is.

    For example this code using xtable works for me.

    ```{r,results='asis'}
    x<-rnorm(100)
    y<-rnorm(100)
    lm <- lm(y~x)
    library(xtable)
    print(xtable(summary(lm)),type='html')
    ```
    

    Here what I did some hours ago:

  • Some data:

    ```{r}
    lm1 <- lm(qsec ~ hp, mtcars)
    lm2 <- lm(qsec ~ wt, mtcars)
    ```
    
  • We use the package sjPlot

    ```{r}
    library(sjPlot)
    sjt.lm(lm1,lm2, file="output.html")# You have to save the table in html format.
    ```
    

    The next part needs to be outside the chunk in markdown:

  • htmltools::includeHTML("output.html")

    在这里输入图像描述

    链接地址: http://www.djcxy.com/p/25000.html

    上一篇: 使用texreg获取lme4对象的标准错误

    下一篇: Markdown格式的回归表格(适用于R Markdown v2)