Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中向用户显示警告_R_Shiny - Fatal编程技术网

在R中向用户显示警告

在R中向用户显示警告,r,shiny,R,Shiny,如何在R中向用户显示警告。用户的输入是正确的,但输出不适合显示。其目的是提醒用户,由于数据太多,仅显示一个子集数据。警告仅在控制台中显示。多谢各位 这里有一个伪代码来解释问题,因为原来的代码很长。可渲染文件中有一条警告。它的目的是检查数据,如果数据很大,则只显示前几项 用户界面 服务器.R shinyServer(function(input, output) { data <- reactive({ validate( need(input$data !=

如何在R中向用户显示警告。用户的输入是正确的,但输出不适合显示。其目的是提醒用户,由于数据太多,仅显示一个子集数据。警告仅在控制台中显示。多谢各位

这里有一个伪代码来解释问题,因为原来的代码很长。可渲染文件中有一条警告。它的目的是检查数据,如果数据很大,则只显示前几项

用户界面

服务器.R

shinyServer(function(input, output) {

data <- reactive({ 

    validate(
        need(input$data != "", "Please select a data set")
    )
    get(input$data, 'package:datasets') 

})


output$plot <- renderPlot({
    hist(data()[, 1], col = 'forestgreen', border = 'white')
})

output$table <- renderTable({
    warning("Warning message.")
    head(data())
})

})
更新: 我在这方面做了更多的工作,并使警告面板有条件

但是,只有在每页都包含textOutputwarnstat时,它才起作用。我假设是因为它没有设置javascript变量output.warnstat,除非我这样做

您可以在UI中构建一个警告面板,并进行相应的设置。下面是一个简单的示例,但它可能比verabtim打印语句更复杂

用户界面 服务器.r 带条件警告面板: 无条件警告面板: 更新: 我在这方面做了更多的工作,并使警告面板有条件

但是,只有在每页都包含textOutputwarnstat时,它才起作用。我假设是因为它没有设置javascript变量output.warnstat,除非我这样做

您可以在UI中构建一个警告面板,并进行相应的设置。下面是一个简单的示例,但它可能比verabtim打印语句更复杂

用户界面 服务器.r 带条件警告面板: 无条件警告面板:
我使用这个包装功能来捕获错误、警告和消息,并将它们显示为用户可拒绝的通知

安静地%purrr::安全地 作用{
res我使用此包装功能捕获错误、警告和消息,并将它们显示为用户可拒绝的通知

安静地%purrr::安全地 功能{
res可能会帮助您编写代码。最少的代码将非常有帮助。@MLavoie验证将停止,与警告不同。也有人提出了类似的问题,并以不同的方式得到了答案:请帮您编写代码。最少的代码将非常有帮助。@MLavoie验证将停止,与警告不同。类似的问题这个问题也被问到了,并得到了一个不同的答案:这是一个解决方案。但有点复杂。我使用textOutput和renderText来显示一些信息,如果它不是警告的话。谢谢。如果您在服务器函数中添加以下内容,您可以忽略textOutputwarnstat:OutputOptions输出,warnstat,suspendWhenHidden=FALSE这是一个解决方案。但有点复杂。如果不是警告,我使用textOutput和renderText来显示一些信息。谢谢。如果将以下内容添加到服务器函数中,您可以忽略textOutputwarnstat:OutputOptions输出,warnstat,suspendWhenHidden=FALSE
shinyServer(function(input, output) {

data <- reactive({ 

    validate(
        need(input$data != "", "Please select a data set")
    )
    get(input$data, 'package:datasets') 

})


output$plot <- renderPlot({
    hist(data()[, 1], col = 'forestgreen', border = 'white')
})

output$table <- renderTable({
    warning("Warning message.")
    head(data())
})

})
    shinyUI(fluidPage(

      titlePanel("Validation App"),

      sidebarLayout(
        sidebarPanel(
          selectInput("data", label = "Data set",
                      choices = c("", "mtcars", "faithful", "iris"))
        ),

        # Show a plot of the generated distribution

        mainPanel(
          conditionalPanel(condition = "output.warnstat == 'Error'",
                           verbatimTextOutput("warnmsg")),
          tableOutput("table"),
          plotOutput("plot")
        )
      )
    ))
shinyServer(function(input, output) {

  errstat <- reactive({
    ifelse (input$data=="mtcars",T,F)
  })

  data <- reactive({
    validate(
      need(input$data != "", "Please select a data set")
    )
    get(input$data, 'package:datasets')

  })


  output$plot <- renderPlot({
    hist(data()[, 1], col = 'forestgreen', border = 'white')
  })

  output$table <- renderTable({
    warning("Warning message.")
    head(data())
  })
  output$warnmsg <- renderPrint({
    if (errstat()){
      print("Warning message - blah blah blah")
      print(input$data)
      head(data())
    } else {
      print("No error")
    }
  })
  output$warnstat <- renderText({ifelse(errstat(),"Error","No error") })
  outputOptions(output, "warnstat", suspendWhenHidden=FALSE)
})