rhandsontable隐藏列为闪亮的应用程序

时间:2016-10-12 15:21:04

标签: r dataframe shiny show-hide rhandsontable

我用

输出$ hot< - renderRHandsontable(rhandsontable(DF))

得到一张桌子。

一切正常,但我想允许用户只选择某些列(使用shiny :: updateSelectizeInput()实现)。然后,应在完整数据表中更新数据,而不仅仅是在所选列中。我用谷歌搜索,但只能在java中找到一个非常糟糕的描述。有人可以帮我解决这个问题吗?

按要求提供了一个例子:

 DF = data.frame(matrix(rnorm(20), nrow=10)) 
 rhandsontable(DF)

1 个答案:

答案 0 :(得分:0)

这已经晚了几年,我会注意到我认为这不能完全解决问题,因为它没有按照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作为列宽来有效地隐藏列,而原始数据帧保持原样。