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