隐藏R控制台中的警告

时间:2019-03-12 08:59:18

标签: r shiny

运行闪亮的应用程序时,我试图从控制台隐藏警告 我尝试将其添加到我的用户界面

tags$style(type="text/css",
         ".shiny-output-error { visibility: hidden; }",
         ".shiny-output-error:before { visibility: hidden; }"
)

但是它不起作用 请帮忙 预先感谢

2 个答案:

答案 0 :(得分:0)

您发布的css是为了防止红色错误消息出现在Shiny应用程序本身上。

要防止别人从R / RStudio自己运行应用程序时在控制台中显示警告消息,也许最灵活的方法是使用options(warn = -1)。另请参见?warning。然后,当您希望看到警告时,可以将其覆盖为options(warn = 0)
在这种情况下,可以确保在应用程序退出时使用options(warn = 0)将警告级别重新设置为零(实际上是以前更好的)。(请参阅{{1 }}),否则您可能会混淆用户。

一种替代方法是按照注释链接中的建议使用?on.exit,这样做更安全。您仍然可以使它依赖于一个选项,以便您可以出于自己的目的覆盖它。

答案 1 :(得分:0)

这可能不是隐藏这些红色错误消息的最佳方法。您可能会看到那些输出取决于尚未定义的输入。

在下面查看此应用:

library(shiny)

ui <- fluidPage(
  selectInput("datasetName", "Dataset", c("", "pressure", "cars")),
  plotOutput("plot"),
  tableOutput("table")
)

server <- function(input, output, session) {
  dataset <- reactive({
    get(input$datasetName, "package:datasets", inherits = FALSE)
  })

  output$plot <- renderPlot({
    plot(dataset())
  })

  output$table <- renderTable({
    head(dataset(), 10)
  })
}

shinyApp(ui, server)

只需在需要req(input$datasetName)的地方放置input$datasetName即可:reactive消除了这些问题。

library(shiny)

ui <- fluidPage(
  selectInput("datasetName", "Dataset", c("", "pressure", "cars")),
  plotOutput("plot"),
  tableOutput("table")
)

server <- function(input, output, session) {
  dataset <- reactive({
    req(input$datasetName) # add req
    get(input$datasetName, "package:datasets", inherits = FALSE)
  })

  output$plot <- renderPlot({
    plot(dataset())
  })

  output$table <- renderTable({
    head(dataset(), 10)
  })
}

shinyApp(ui, server)