R闪亮的summary_table out不会在html中呈现

时间:2018-03-22 21:55:17

标签: r shiny qwraps2

我有简单的应用程序来计算摘要,摘要部分工作正常。我怎么想把结果作为html输出回UI。我无法使用它来使用renderUI和htmloutput。如果我使用rendertable和tableoutput我得到一个缺少标题的部分输出,并且没有解析html表。有什么指针吗?

library(qwraps2) #for the summary table
library(shiny)
library(dplyr)

ui <- fluidPage( tabsetPanel(
   tabPanel("Summary", 
      # mainPanel(tableOutput('summarytab'))
      mainPanel(htmlOutput('summarytab'))
       )
  )
  )

server <- function(input, output){

  output$summarytab <- renderUI({

   our_summary1 <- 
    list("Miles per gallon" = 
         list("min" = ~ min(mpg), 
              "max" = ~ max(mpg),
              "mean (sd)" = ~ qwraps2::mean_sd(mpg)),
        "Cylinder" = 
         list("min" = ~ min(cyl), 
              "max" = ~ max(cyl),
              "mean (sd)" = ~ qwraps2::mean_sd(cyl))

    )  
   summary_table(filter(mtcars),our_summary1)
})

 } 

shinyApp(ui = ui, server = server)

1 个答案:

答案 0 :(得分:3)

哇,很难。这是我找到的解决方案。

library(qwraps2) 
options(qwraps2_markup = "markdown")
library(shiny)
library(dplyr)
library(knitr) # for knit2html

ui <- fluidPage( tabsetPanel(
  tabPanel("Summary", 
           # mainPanel(tableOutput('summarytab'))
           mainPanel(uiOutput('summarytab'))
  )
)
)

server <- function(input, output){

  output$summarytab <- renderUI({

    our_summary1 <- 
      list("Miles per gallon" = 
             list("min" = ~ min(mpg), 
                  "max" = ~ max(mpg),
                  "mean (sd)" = ~ qwraps2::mean_sd(mpg)),
           "Cylinder" = 
             list("min" = ~ min(cyl), 
                  "max" = ~ max(cyl),
                  "mean (sd)" = ~ qwraps2::mean_sd(cyl))

      )  
    stable <- summary_table(filter(mtcars),our_summary1)
    HTML(knit2html(text=capture.output(stable), fragment.only=TRUE))
    # do not forget 'capture.output'
  })

} 

shinyApp(ui = ui, server = server)

渲染效果很好:

enter image description here

PS:看起来像是another possible rendering。但我不知道该怎么做,以及它是否有可能闪亮。

相关问题