【问题标题】:Check rhandsontable for valid inputs in Shiny在 Shiny 中检查 rhandsontable 的有效输入
【发布时间】:2021-01-03 09:06:32
【问题描述】:

问题:我有以下示例应用程序,用户可以在其中更改 rhandsontable 对象。我想检查用户所做的修改是否有效。已实现:如果无效,单元格颜色将变为深红色。

问题: 是否有可能检查 R(不仅是视觉上)整个 rhandsontable,如果它只包含有效的输入,即一些可以返回的 TRUE/FALSE 标志并且是一个属性rhandsontable 对象或一些隐藏选项?

library(shiny)
library(rhandsontable)

ui <- fluidPage(
    rHandsontableOutput("table")
)

server <- function(input, output, session) {
  
  output$table <- renderRHandsontable(
    rhandsontable(mtcars)
  )
  
  observe({
    str(input$table)
  })
}

shinyApp(ui, server)

【问题讨论】:

    标签: r shiny rhandsontable


    【解决方案1】:

    您可以使用hot_to_r 阅读表格,然后进行检查。在示例中,如果您将一个单元格更改为一个字符,则该标志将设置为FALSE。这是因为在输入中返回一个字符为NA(我不确定为什么不返回该字符):

    library(shiny)
    library(rhandsontable)
    
    ui <- fluidPage(
      rHandsontableOutput("table"),
      verbatimTextOutput("flag")
    )
    
    server <- function(input, output, session) {
      
      # flag for numeric values
      is_table_ok <- reactiveVal(FALSE)
      
      output$table <- renderRHandsontable(
        rhandsontable(mtcars)
      )
      
      observeEvent(input$table, {
        table_object <- hot_to_r(input$table)
        flag <- !is.na(table_object)
        flag <- purrr::reduce(flag, `&&`)
        is_table_ok(flag)
      })
      
      output$flag <- renderPrint({
        is_table_ok()
      })
    }
    
    shinyApp(ui, server)
    

    【讨论】:

      猜你喜欢
      • 2019-02-28
      • 1970-01-01
      • 1970-01-01
      • 2017-04-30
      • 2018-03-14
      • 2017-12-02
      • 2017-04-17
      • 2020-12-25
      • 2018-04-28
      相关资源
      最近更新 更多