Скрыть предупреждения от консоли R - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь скрыть предупреждения от консоли при запуске моего блестящего приложения. Я пытался добавить это в свой пользовательский интерфейс

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

, но это не работает, пожалуйста, помогите, спасибо заранее

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Вероятно, это не лучший способ скрыть эти красные сообщения об ошибках. Вы, вероятно, видите, что некоторые выходные данные зависят от входных данных, которые еще определены.

См. Это приложение ниже:

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)
0 голосов
/ 12 марта 2019

css, который вы опубликовали, предназначен для предотвращения появления красных сообщений об ошибках в самом приложении Shiny.

Чтобы запретить отображение предупреждающих сообщений в консоли, когда кто-то еще запускает приложение изR / RStudio, может быть, наиболее гибкий, если вы используете options(warn = -1).Смотрите также ?warning.Затем вы можете просто переопределить его на options(warn = 0), когда вы хотели бы видеть предупреждения.
В этом сценарии было бы целесообразно убедиться, что вы установили уровень предупреждения на ноль ( на самом деле лучше, чем бы он ни был.ранее ) с options(warn = 0) при выходе из приложения (см. ?on.exit), в противном случае вы можете запутать своих пользователей.

Альтернативой может быть использование suppressWarnings, как предлагается в ссылке накомментарий, который является более безопасным в этом отношении.Вы все еще можете сделать так, чтобы это зависело от опции, такой, чтобы вы могли переопределить ее для своих собственных целей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...