如何在 R Shiny 应用程序中验证 select 输入?

How can I validate select input in RShiny app?

我想问一下,有人可以帮助我如何验证这样的 select 输入吗?我们假设虹膜没有因素。有什么方法可以验证它吗?

服务器:

output$choose_y = renderUI({
    is_factor <- sapply(iris, FUN = is.factor)
    y_choices <- names(iris) [is_factor]
    selectInput('choose_y', label = 'Choose Target Variable', choices = y_choices)
}) 

Ui:

uiOutput('choose_y')

为了说明我们在评论中的讨论,您可以检查数据集中是否存在 any 因素:

# With iris
is_factor <- sapply(iris, FUN = is.factor)
y_choices <- names(iris) [is_factor]
validate(need(any(is_factor),"No factor in dataset"))
print(paste('OK to use iris'))

#[1] "OK to use iris"

# With mtcars
is_factor <- sapply(mtcars, FUN = is.factor)
y_choices <- names(mtcars) [is_factor]
validate(need(any(is_factor),"No factor in dataset"))

Error: No factor in dataset