在Shiny中显示反应性htmlTable表

时间:2018-05-09 14:14:30

标签: r shiny

我正在创建我的第一个Shiny应用程序,但无法找到如何显示使用htmlTable包创建的表格的任何示例。我基本上想要在按下按钮时创建一个表并显示它。

Shiny显示html代码而不是表格。我不知道要替换什么" renderTable"在ui-part中的server-part和tableOutput中。

我还没有使用普通表,因为我需要htmlTable包中提供的列跨越功能。

library(shiny)
library(htmlTable)

####################  ui part ##############################################
ui <- pageWithSidebar(
headerPanel("Tables"),

sidebarPanel(
    actionButton("goButton", "Run Table")
  ),
  mainPanel(
    tableOutput("filetable")
  )
)

####################  server part #######################################    
server <- function(input,output)
{

  selectedData <- eventReactive(input$goButton, {

    # Create the table (using table from htmlTables doc as example)
    htmlTable(matrix(paste("Content", LETTERS[1:16]), 
                 ncol=4, byrow = TRUE),
          header =  paste(c("1st", "2nd",
                            "3rd", "4th"), "header"),
          rnames = paste(c("1st", "2nd",
                           "3rd", "4th"), "row"),
          rgroup = c("Group A",
                     "Group B"),
          n.rgroup = c(2,2),
          cgroup = c("Cgroup 1", "Cgroup 2&dagger;"),
          n.cgroup = c(2,2), 
          caption="Basic table with both column spanners (groups) and row 
groups",
          tfoot="&dagger; A table footer commment") 
  })

  output$filetable <- renderTable({selectedData()})

}

shinyApp(ui,server)

1 个答案:

答案 0 :(得分:0)

我改变了两件事:

  1. 您需要renderUIhtmlOutput对。
  2. 我将htmlTable打包到来自HTML的{​​{1}} - 函数中,告诉shiny shiny括号内的所有内容都是html。< / LI>

    对于未来的() - 应用,我建议使用RStudio的备忘单:https://shiny.rstudio.com/images/shiny-cheatsheet.pdf

    shiny