我的目标是显示一些数据表和:
1)启用对所有表格进行重新排序的列
2)启用chaning tables order。
我的第一次尝试是将shinyjqui::jqui_sortable
与DT::datatable
结合使用。
对于列重新排序,ColReorder
扩展名做得很好,例如
library(DT)
datatable(mtcars,
extensions = c("ColReorder"),
options = list(colReorder = TRUE))
但是,使用jqui_sortable
添加互动后,列重新排序不再有效:
library(DT)
library(ggplot2)
server <- function(input, output) {
output$tb <-renderDataTable({
datatable(mtcars,
extensions = c("ColReorder"),
options = list(colReorder = TRUE))
})
output$gg <- renderPlot({
ggplot(mtcars, aes(x = cyl, y = mpg, color = factor(vs))) +
geom_point() +
theme(legend.position= "none")
})
}
ui <- fluidPage(
jqui_sortable(div(plotOutput('gg', width = '200px', height = '200px'),
dataTableOutput('tb', width = '200px', height = '200px')
))
)
shinyApp(ui, server)
我很感激任何想法如何解决或提出另一种方法:)
答案 0 :(得分:2)
将options
参数添加到jqui_sortable
函数:options = list(cancel = '.dataTables_scroll')
。在这种情况下,它取消了对具有类.dataTables_scroll
的元素的排序功能,该类是整个表(具有列名)。