Мне нужно плавно заменить данные в (форматируемом) видеоданных, не мигая при загрузке страницы.
Следуя примеру @yihui здесь: https://github.com/rstudio/DT/issues/168 Мне удалось плавно заменить данные в стандартной таблице данных без мигания страницы с помощью функции dataTableProxy.
При включении форматированиячерез форматируемый пакет мой код выдает ошибку: Предупреждение: ошибка в as.data.frame.default: невозможно привести класс "c (" datatables "," htmlwidget ")" к data.frame
Минимальная воспроизводимостьпример:
library(shiny)
library(DT)
library(formattable)
dt <- data.frame(type = letters[1:5], count = sample(1:10, 5))
shinyApp(
ui = fluidPage(sidebarLayout(
sidebarPanel(
sliderInput(
"number",
"Select:",
min = 0,
max = 10,
value = 8
)
),
mainPanel(DT::dataTableOutput('DTtable'))
)),
server = function(input, output, session) {
# Reactive expression of the data frame, subset by the slider number
sliderValues <- reactive({
# Compose data frame
dt['count' > input$number,]
})
output$DTtable = DT::renderDataTable(as.datatable(formattable(
isolate(sliderValues()),
list(count = color_tile('#ffffff', '#6be560'))
)))
observeEvent(sliderValues(), ignoreInit = T, {
replaceData(dataTableProxy('DTtable'),
as.datatable(formattable(
isolate(sliderValues()),
list(count = color_tile('#ffffff', '#6be560'))
)))
})
}
)
Когда я перемещаю ползунок, я хочу перезагрузить таблицу, сохраняя при этом форматируемый стиль.