#r #shiny #dplyr
#r #блестящий #dplyr
Вопрос:
Я разрабатываю блестящее приложение для агрегирования данных, в котором значения извлекаются из базы данных, а агрегирование производится с помощью пакета dplyr. Изначально, когда нет данных, мне нужно обработать эту ошибку лучшим способом, показав zero
значение на экране или NA
value вместо этой ошибки красным цветом no applicable method for 'group_by_' applied to an object of class "NULL"
output$Regbycity <- renderValueBox({
valueBox(
value = reg_city()$Total[1],
subtitle = reg_city()$registrant_city[1],
icon = icon("globe"),
color = "light-blue"
)
})
reg_city <- function(){
final_data %>%
group_by(registrant_city) %>%
summarise(Total= n()) %>%
arrange(desc(Total)) %>%
top_n(n=15)
}
В приведенном выше коде значение object ничего не пропускает, поскольку в базе данных ничего нет, и это строка, в которой отображается ошибка на блестящей панели мониторинга, от которой я хочу избавиться. Пожалуйста, помогите..
Ответ №1:
Просто добавьте функцию, подобную этой….
if.is.empty <- function(x){
is.null(need(x, message = FALSE))}
и ваши коды выглядят примерно так….
reg_city <- function(){
if (if.is.empty(final_data)) {
final_data %>%
group_by(registrant_city) %>%
summarise(Total= n()) %>%
arrange(desc(Total)) %>%
top_n(n=15)}
}
Примечание. Просто будьте осторожны с отступом…
Это сработало для меня в блестящем приложении, когда оно запускается без информации.