Настоящая проблема, которую я пытаюсь решить: я создаю информационную панель, которая будет включать таблицы данных. Я хотел бы, чтобы числа были отформатированы с запятыми как разделители тысяч, но есть (очевидно) проблема с пакетом DT, когда он используется с Shiny, в том, что форматирование с разделителями-запятыми заставляет DT::renderDataTable читать числа как символ , что влияет на сортировку чисел. (Похоже, функция форматирования чисел DT не работает с Shiny.)
Там, где я сейчас: Единственное решение, которое мне удалось найти, — это использовать googleVis вместо DT для создания таблиц. Теперь я столкнулся с другой проблемой (описанной ниже), но что меня действительно волнует, так это наличие таблиц данных с числами, разделенными запятыми, которые сортируются как числа.
Проблема с GoogleVis: когда я использую gvisTable вне приложений Shiny, они прекрасно отображаются, но не отображаются вообще при использовании renderGvis и htmlOutput в Shiny. В качестве примера я возьму пример 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())
})
}
)
Любая помощь высоко ценится!