R Shiny:向UI输出警告消息

时间:2017-06-23 13:15:52

标签: r shiny

在控制台中输出警告消息,但如何让这些警告显示在UI中,以便用户可以在不查看控制台的情况下看到它们?

1 个答案:

答案 0 :(得分:3)

您可以使用=SUM(COUNTIFS($F$28:$F$86,"Standard",$G$28:$G$86,{"Yes","Mgmt Find"})) 存储警告对象。 然后,您可以将消息放在UI上的任何位置。

tryCatch

同时获取消息和值

如果操作不重,一种简单的方法是运行两次:一次使用library(shiny) ui <- fluidPage( actionButton("btn", "click me") ) server <- function(input, output) { observeEvent(input$btn, { #x <- (1:3 * 1:2) # this generates a warning #warning("manually generated warning message") #mess <- names(last.warning) a <- tryCatch(warning(Sys.time()), warning=function(w) { w }) mess <- a$message showNotification(mess) }) } runApp(list(ui=ui, server=server)) 而另一次没有。

tryCatch

如果不希望运行两次相同的操作,则使用以下技巧(See this SO thread

library(shiny)

ui <- fluidPage(
  actionButton("btn", "click me")
)

server <- function(input, output)
{
  observeEvent(input$btn, {

    x <- tryCatch(1:3 * 1:2, warning=function(w) { w })
    if (inherits(x, "simpleWarning")) {
      mess <- x$message
      showNotification(mess)
      x <- 1:3 * 1:2
    }
    print(x)
  })
}

runApp(list(ui=ui, server=server))