我正在尝试解决的实际问题:我正在创建一个包含数据表的仪表板。我希望用逗号作为千位分隔符来格式化数字,但是当它与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())
})
}
)
非常感谢任何帮助!
答案 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.