gvisTables无法在Shiny应用程序中呈现

时间:2015-07-08 20:34:25

标签: r datatable shiny googlevis dt

我正在尝试解决的实际问题:我正在创建一个包含数据表的仪表板。我希望用逗号作为千位分隔符来格式化数字,但是当它与Shiny一起使用时,显然存在DT包的问题,​​因为以逗号分隔的格式化导致DT :: renderDataTable以数字作为字符读取,这会影响数字的排序方式。 (DT的数字格式化功能不适用于Shiny,它会出现。)

到目前为止我所处的位置:我能找到的唯一解决方案是使用googleVis代替DT来创建表格。现在我遇到了一个不同的问题(如下所述),但我真正关心的是数据表中包含逗号分隔的数字,这些数字类似于数字。

GoogleVis问题:当我在Shiny应用程序之外使用gvisTable时,它们渲染得非常好,但在Shiny中使用renderGvis和htmlOutput时它们根本无法呈现。举个例子,我将从here.

借用示例4

不使用Shiny,我的代码如下所示:

library(datasets)
library(googleVis)

myOptions <- list(page='enable', pageSize=10, width=550)

Table <- gvisTable(Population,options=myOptions)

plot(Table)

使用Shiny,就像这样:

library(datasets)
library(googleVis)
library(shiny)

shinyApp(
  ui = pageWithSidebar(
    headerPanel("Example 4: pageable table"),
    sidebarPanel(
      checkboxInput(inputId = "pageable", label = "Pageable"),
      conditionalPanel("input.pageable==true",
                       numericInput(inputId = "pagesize",
                                    label = "Countries per page",10))
    ),
    mainPanel(
      htmlOutput("myTable")
    )
  ),
  server = function(input,output){
    myOptions <- reactive({
      list(
        page=ifelse(input$pageable==TRUE,'enable','disable'),
        pageSize=input$pagesize,
        width=550
      )
    })
    output$myTable <- renderGvis({
      gvisTable(Population,options=myOptions())
    }) 
  }
)

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:4)

I solved my own problem. It turns out that RStudio's native browser has difficulty displaying googleVis exhibits through Shiny. All I needed to do was open it up in Firefox... I don't think I've ever felt so much "woot" and "ugh" at the same time before.