R标记/R标记中的回归表(html/pdf)

R标记/R标记中的回归表(html/pdf),r,r-markdown,stargazer,texreg,R,R Markdown,Stargazer,Texreg,为了发布,我经常需要PDF和HTML版本的作品,包括回归表,我想使用R标记。对于PDF而言,stargazer和texreg软件包生成了精彩的表格。现在,为了生成同样有吸引力的HTML输出,我面临着不同的问题 HTML输出的两种方法都在注释中没有显著性星号。由于它们是自动生成的,我不知道如何摆脱它们。(我认为这可能是一个小问题,因此我不想把它分成单独的问题。)注意:子问题已经回答 在创建明确的输出之前,我通常必须更改数据或进行一些格式化。我发现总是在type='html'到type='pdf'之

为了发布,我经常需要PDF和HTML版本的作品,包括回归表,我想使用R标记。对于PDF而言,
stargazer
texreg
软件包生成了精彩的表格。现在,为了生成同样有吸引力的HTML输出,我面临着不同的问题

  • HTML输出的两种方法都在注释中没有显著性星号。由于它们是自动生成的,我不知道如何摆脱它们。(我认为这可能是一个小问题,因此我不想把它分成单独的问题。)注意:子问题已经回答

  • 在创建明确的输出之前,我通常必须更改数据或进行一些格式化。我发现总是在
    type='html'
    type='pdf'
    之间手动切换选项是很烦人的。我想知道是否有更可行的方法将html/pdf输出
    结合起来,例如,在
    texreg
    /
    stargazer
    中进行个案切换,以获得整洁的输出

  • 我尝试了有前途的方法,但自2014年以来似乎不再奏效。这也不是很令人满意,它在最后变得有些手动,而不是我想要的。似乎只参考普通表

    非常感谢您的帮助,谢谢

    以下是我尝试以HTML和PDF格式编写
    knitr
    的摘要:

    ```{r setup, include=FALSE}
    knitr::opts_chunk$set(echo = TRUE)
    ```
    ```{r table, results = "asis"}
    library(car)
    lm1 <- lm(prestige ~ income + education, data=Duncan)
    
    ## html
    # stargazer
    library(stargazer)
    stargazer(lm1, type="html", notes="stargazer html")
    # htmlreg
    library(texreg)
    htmlreg(lm1, custom.note="%stars. htmlreg")
    
    ## pdf/latex
    # stargazer
    stargazer(lm1, notes="stargazer latex")
    # texreg
    texreg::texreg(list(lm1), custom.note="%stars. texreg")
    
    # pixiedust
    library(pixiedust)
    dust(lm1, caption = "pixiedust")
    
    # pander
    library(memisc)
    library(pander)
    lm1_table <- mtable(lm1)
    # pander(lm1_table, style="rmarkdown") # not working
    pander(lm1)
    ```
    
    `{r设置,include=FALSE}
    knitr::opts_chunk$set(echo=TRUE)
    ```
    ```{r table,results=“asis”}
    图书馆(汽车)
    
    lm1这里有一个建议:创建一个函数来检查输出格式,然后根据这一点使用stargazer或texreg。我们使用
    opts\u knit$get(“rmarkdown.pandoc.to”)
    检查输出格式

    ---
    output: html_document
    ---
    
    ```{r setup, include=FALSE}
    library(knitr)
    opts_chunk$set(echo = TRUE)
    rmd_format <- opts_knit$get("rmarkdown.pandoc.to")
    ## returns "html" or "latex"
    
    ```
    
    ```{r}
    
    report_regression <- function(model, format, ...){
      if(format == "html"){
        require(texreg)
        htmlreg(model, custom.note="%stars. htmlreg", ...)
      } else if(format == "latex"){
        require(stargazer)
        stargazer(model, notes="stargazer html", ...)
      } else {
       print("This only works with latex and html output") 
      }
    }
    ```
    
    ```{r table, results = "asis"}
    library(car)
    lm1 <- lm(prestige ~ income + education, data=Duncan)
    
    report_regression(lm1, format = rmd_format)
    ```
    
    ---
    输出:html\u文档
    ---
    ```{r设置,include=FALSE}
    图书馆(knitr)
    选择块$set(echo=TRUE)
    rmd_格式正如所指出的,
    knitr
    1.18以下功能

    knitr::is_html_output()
    knitr::is_latex_output()
    
    检查输出是HTML还是LaTeX。改编@scoa的优秀答案:

    ---
    output: html_document
    ---
    
    ```{r}
    
    report_regression <- function(model, ...){
      if(knitr::is_html_output()){
        require(texreg)
        htmlreg(model, custom.note="%stars. htmlreg", ...)
      } else if(knitr::is_latex_output()){
        require(stargazer)
        stargazer(model, notes="stargazer html", ...)
      } else {
       print("This only works with latex and html output") 
      }
    }
    ```
    
    ```{r table, results = "asis"}
    library(car)
    lm1 <- lm(prestige ~ income + education, data=Duncan)
    
    report_regression(lm1)
    ```
    
    ---
    输出:html\u文档
    ---
    ```{r}
    
    报告:这有帮助吗;您可以在stargazer中设置
    类型
    ,具体取决于输出格式A,thx!!我很兴奋定制甚至可以成批使用函数:
    lm1