gvisTables 未在 Shiny 应用程序中呈现

Posted

技术标签:

【中文标题】gvisTables 未在 Shiny 应用程序中呈现【英文标题】:gvisTables not rendering in Shiny apps 【发布时间】:2015-09-26 23:35:03 【问题描述】:

我要解决的实际问题:我正在创建一个包含数据表的仪表板。我希望用逗号将数字格式化为千位分隔符,但是(显然)DT 包与 Shiny 一起使用时存在问题,因为逗号分隔的格式会导致 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】:

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

【讨论】:

以上是关于gvisTables 未在 Shiny 应用程序中呈现的主要内容,如果未能解决你的问题,请参考以下文章

图像未在 Shiny 应用 R 中显示

无法在 Linux VM 中的 Shiny 服务器上部署 Shiny 应用程序

RStudio 服务器 Shiny 上的 R Shiny dev 应用程序启动时崩溃

R 中 Shiny 中的时间序列预测; Shiny 显示 unix 纪元时间

JavaScript 在 Shiny 的模态中不起作用

在 Shiny 应用中存储用户上传的数据