#r #shiny
#r #блестящий
Вопрос:
Мой фрейм данных train_df фильтруется для входных данных, которые предоставляет пользователь. После этого я использую отфильтрованный фрейм данных для запуска модели. Но если пользователь устанавливает фильтр слишком узким, и для этих фильтров нет точек, я хочу показать пользователю сообщение об ошибке, предпочтительно в модальном поле (если нет, то где угодно), что для ваших фильтров не найдено точек. Я использую следующий код на стороне моего сервера. ‘update’ — это идентификатор ввода моей кнопки в пользовательском интерфейсе })
observeEvent(input$update,{
shiny::validate(
need(nrow(train_df) > 0, "No points found for these filters!")
)
})
Мой оператор validate работает, но сообщение об ошибке не отображается в приложении. Любая помощь будет оценена.
Комментарии:
1. Трудно диагностировать проблему, даже не взглянув на полный код, показывающий, как
train_df
был создан.2. Я полагаю,
validate
показывает его сообщение в элементе пользовательского интерфейса, в который включен код (либо напрямую, либо через реактивную зависимость). Здесь вы не включаете его ни во что, связанное с пользовательским интерфейсом, поэтому ему некуда идти. Например, если у вас естьdata <- reactive({ validate(...); ...})
а затем в другом местеoutput$tbl <- renderTable({ data(); })
, то сообщение validate будет отображаться в"tbl"
элементе пользовательского интерфейса.3. Смотрите shiny.rstudio.com/articles/validation.html и shiny.rstudio.com/reference/shiny/latest/validate.html