4

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

到目前为止我在哪里:我能找到的唯一解决方案是使用 googleVis 而不是 DT 来创建表格。现在我遇到了一个不同的问题(如下所述),但我真正关心的是具有逗号分隔数字的数据表,排序类似于数字。

GoogleVis 问题:当我在 Shiny 应用程序之外使用 gvisTable 时,它​​们呈现得非常好,但在 Shiny 中使用 renderGvis 和 htmlOutput 时它们根本不呈现。作为示例,我将从这里借用示例 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())
    }) 
  }
)

任何帮助深表感谢!

4

1 回答 1

4

我解决了我自己的问题。事实证明,RStudio 的原生浏览器很难通过 Shiny 显示 googleVis 展品。我需要做的就是在 Firefox 中打开它……我想我以前从来没有同时感觉到这么多“呜呜”和“呃”。

于 2015-07-13T21:09:24.243 回答