禁用 R 中的操作按钮面临多个输入的问题
Disable action button in R facing problem for multiple inputs
您好,我正在构建一个如下的 R 代码以获得一个闪亮的应用程序
ui = fluidPage(
shinyjs::useShinyjs(),
shinyjs::inlineCSS(appCSS),
shinyFeedback::useShinyFeedback(),
titlePanel("Predicting concrete strength",""),
numericInput("CEM","Cement (kg)",""),
numericInput("Water","Water (kg)",""),
numericInput("PFA","Flyash (kg)",""),
actionButton("submit", "Get the results", class = "btn-primary"),
textOutput("class"),
textOutput("class_prob")
)
服务器代码是
server <- function(input, output, session) {
inputsValues = reactiveValues(inputs = NULL)
## to disable action button until all inputs are given
observe({
if(input$CEM!="" && input$Water!= "" && input$PFA!=""){
shinyjs::enable("submit")
} else {
shinyjs::disable("submit")
}
})
# putting some feedback if inputs are wrongly given
observeEvent(input$submit,{
cem_con<- (as.numeric(input$CEM) > 163 & as.numeric(input$CEM) < 3307)
shinyFeedback::feedbackDanger("CEM", !cem_con , " abc")
wat_con<- (as.numeric(input$Water) > 131 & as.numeric(input$Water) < 1640)
shinyFeedback::feedbackDanger("Water",!wat_con , "abc")
pfa_con<-(as.numeric(input$PFA) > 55 & as.numeric(input$PFA) < 1617)
shinyFeedback::feedbackDanger("PFA", !pfa_con, "abc")
req(cem_con,wat_con)
inputsValues$inputs<-c("CEM"=input$CEM,"Water"=input$Water,"PFA"=input$PFA)
inputsValues$inputs<-as.numeric(inputsValues$inputs)
})
output$class_prob<- renderText(inputsValues$inputs)
output$class <- renderText(sum(inputsValues$inputs))
}
当我 运行 应用程序使用
shinyApp(ui, server)
它停止并给出以下错误
正在收听 http://126.0.0.1:3739
警告:启用错误:找不到功能“启用”
[没有可用的堆栈跟踪]
要检查缺失值,您可以使用 is.na()
,如下所示。
observe({
if (is.na(input$CEM) | is.na(input$Water) | is.na(input$PFA) ) {
shinyjs::disable("submit")
} else {
shinyjs::enable("submit")
}
})
您好,我正在构建一个如下的 R 代码以获得一个闪亮的应用程序
ui = fluidPage(
shinyjs::useShinyjs(),
shinyjs::inlineCSS(appCSS),
shinyFeedback::useShinyFeedback(),
titlePanel("Predicting concrete strength",""),
numericInput("CEM","Cement (kg)",""),
numericInput("Water","Water (kg)",""),
numericInput("PFA","Flyash (kg)",""),
actionButton("submit", "Get the results", class = "btn-primary"),
textOutput("class"),
textOutput("class_prob")
)
服务器代码是
server <- function(input, output, session) {
inputsValues = reactiveValues(inputs = NULL)
## to disable action button until all inputs are given
observe({
if(input$CEM!="" && input$Water!= "" && input$PFA!=""){
shinyjs::enable("submit")
} else {
shinyjs::disable("submit")
}
})
# putting some feedback if inputs are wrongly given
observeEvent(input$submit,{
cem_con<- (as.numeric(input$CEM) > 163 & as.numeric(input$CEM) < 3307)
shinyFeedback::feedbackDanger("CEM", !cem_con , " abc")
wat_con<- (as.numeric(input$Water) > 131 & as.numeric(input$Water) < 1640)
shinyFeedback::feedbackDanger("Water",!wat_con , "abc")
pfa_con<-(as.numeric(input$PFA) > 55 & as.numeric(input$PFA) < 1617)
shinyFeedback::feedbackDanger("PFA", !pfa_con, "abc")
req(cem_con,wat_con)
inputsValues$inputs<-c("CEM"=input$CEM,"Water"=input$Water,"PFA"=input$PFA)
inputsValues$inputs<-as.numeric(inputsValues$inputs)
})
output$class_prob<- renderText(inputsValues$inputs)
output$class <- renderText(sum(inputsValues$inputs))
}
当我 运行 应用程序使用
shinyApp(ui, server)
它停止并给出以下错误
正在收听 http://126.0.0.1:3739 警告:启用错误:找不到功能“启用” [没有可用的堆栈跟踪]
要检查缺失值,您可以使用 is.na()
,如下所示。
observe({
if (is.na(input$CEM) | is.na(input$Water) | is.na(input$PFA) ) {
shinyjs::disable("submit")
} else {
shinyjs::enable("submit")
}
})