这已经晚了几年,我会注意到我认为这不会完全解决问题,因为它没有按照 OP 的要求使用“updateSelectizeinput()”,而且我不能正确处理选择输入正如一列总是显示的那样,但对于任何想要开始的人来说,这里有一个例子:
library(shiny)
library(rhandsontable)
ui <- fluidPage(
selectInput("Select", "Select", names(mtcars), multiple = T, selected = names(mtcars)),
rHandsontableOutput("cars")
)
server <- function(input, output, session) {
DF<-reactiveValues(DF = mtcars, Select = NULL)
observeEvent(input$Select,{
DF$Select <- input$Select
})
output$cars<-renderRHandsontable({
rhandsontable(DF$DF, rowHeaders = NULL)%>%
hot_cols(colWidths = ifelse(names(DF$DF) %in% DF$Select == T, 150, 0.1))
})
}
shinyApp(ui, server)
它使用 0.1 作为列宽来有效地隐藏列,使原始数据框保持完整。