R 如何对错误消息应用自定义格式

R 如何对错误消息应用自定义格式,r,plot,error-handling,shiny,R,Plot,Error Handling,Shiny,当用户为闪亮的绘图选择0个输入变量时,我希望显示一条大错误消息,而不是绘图。使用validate()和中的方法,我只能在绘图的顶部/底部显示自定义错误消息。然后是一个很大的空白区域,这里曾经是绘图的地方。如何根据自己的喜好设置文本输出/错误消息的格式,使其仅在无法渲染绘图时显示 ...#server.R output$pairsPlot <- renderPlot({ output$displayvars <- renderText("") if (length(input$disp

当用户为闪亮的绘图选择0个输入变量时,我希望显示一条大错误消息,而不是绘图。使用validate()和中的方法,我只能在绘图的顶部/底部显示自定义错误消息。然后是一个很大的空白区域,这里曾经是绘图的地方。如何根据自己的喜好设置文本输出/错误消息的格式,使其仅在无法渲染绘图时显示

...#server.R
output$pairsPlot <- renderPlot({
output$displayvars <- renderText("")
if (length(input$display) >= 2) { #method 1
  #method 2
  validate(need(length(input$display)>=2, "Please select two or more display variables."))
  if (input$autoRender == TRUE) {
    vars <- varsList()
    data <- colorData()
  } else {
    vars <- slowVarsList()
    data <- slowData()
  }

  print("Rendering Plot.")
      pairs(data[vars],
           lower.panel = panel.smooth,
           upper.panel=NULL, 
           col=data$color, 
           pch = as.numeric(input$pointStyle), 
           cex = as.numeric(input$pointSize))
  # }
  print("Plot Rendered.")
}
else {
  output$displayvars <- renderText("need more display vars") #method 1
}

正如您在代码中看到的,有两种错误报告方法(1.if/else textoutput;2.validate)(验证被第一种方法覆盖)

可能,与其使用内置的闪亮消息,不如直接使用
renderText
来显示错误消息。
renderText
是我尝试的第一种方法。它工作得很好,但是它仍然没有被放置在绘图的中间(只是在顶部或底部,取决于UI .R文件中的语句顺序)。您可以使用<代码> ReNeRuIu//Cudio在服务器端动态创建<代码> > PLOutOuts和<代码>文本输出< /COD>。然后,您可以在特定条件下输出错误文本,并在所有其他条件下输出实际绘图。您还可以使用
conditionalPanel
...ui.R
column(9,
      h2(textOutput("displayvars"), align = "center"),
      plotOutput("pairsPlot", click = "pairs_click", height=700)
    )