我想在更新基于“rhandsontable”的表时创建一个验证方案。我有两列:Min 和 Max,我希望当 Max 列中的一个单元格被更新时,只有它被允许更新为大于同一行中前一列 Min 的值,反之亦然。也许可以使用 hot_cols 渲染器并通过大于零的减法进行验证等。但我一般不熟悉“rhandsontable”或“hansontable”,尽管我认为这是可能的,但我不知道如何。谢谢。
玩具示例:
library(shiny)
library(rhandsontable)
if (interactive()) {
ui <- fluidPage(
rHandsontableOutput('table'),
tableOutput('table1')
)
server <- function(input, output,session) {
values <- reactiveValues(df=data.frame(Parameter=c('A','B','C'),Min=c(10,20,30),Max=c(20,30,40)))
observe({
if(!is.null(input$table)){
values$df <- hot_to_r(input$table)
output$table1<-renderTable(values$df)
}
})
output$table<-renderRHandsontable({
rhandsontable(values$df)%>%
hot_col("Parameter", readOnly = TRUE)%>%
hot_validate_numeric(col='Min', min = 1, max = 50,allowInvalid = FALSE)%>%
hot_validate_numeric(col='Max', min = 1, max = 50,allowInvalid = FALSE)
})
}
shinyApp(ui, server)
}