我正在开发一个R闪亮的应用程序,它允许用户为给定的模型输入自己的公式。当用户输入无效输入(例如一行中有两个加号)时,应用程序会崩溃,并显示以下错误:
Warning: Error in :: argument of length 0
我在控制用户输入和定位错误发生的确切位置时遇到了麻烦。该对象是数据帧/列表。我尝试在is.na
和is.null
作为条件的情况下使用if循环,但仍然收到此错误。如何控制Shiny中的这个错误,比如用户可以输入的任何无效输入?
谢谢!
发布于 2021-10-11 05:11:27
对于您担心会返回错误的代码,您可以使用tryCatch
。如果输入是正确的,这将返回您想要的数据,如果有错误,将返回其他数据,例如NA
。
您可以检查processed_data
中的错误指示,例如is.na(processed_data)
,并根据该错误执行某些操作。
display_user_input <- renderUI({
processed_data <- tryCatch({
processed_data <- my_function(input$user_input)
processed_data
}, error = function(e) {
xx <- NA
processed_data
},warning = function(e) {
xx <- NA
processed_data
})
if(is.na(processed_data)){
helpText("User input not valid")
}else{
##do something with processed data
renderTable(processed_data)
}
})
https://stackoverflow.com/questions/69517893
复制相似问题