r闪亮:隐藏na之前,请单击绘图以返回条件面板中的值



我正在使用plot_click在闪亮中询问图形,并希望有条件的面板显示2个信息。但是,目前,有条件的面板显示" NA",直到我执行剧情点击,如何使其消失?

library(ggplot2)
library(shiny)
# make some data
df <- data.frame(ID=c(1,2),x=c(33,7),y=c(50,16),name=c("Tom","Bill"),link=c("https://mylink.com","https://anotherlink.com"), stringsAsFactors=FALSE)
# Shiny app
ui <- basicPage(
    plotOutput("plot", click = "plot_click"),
  verbatimTextOutput("selection"),
  conditionalPanel("!is.na(output.nametext)",
                   h4(textOutput("nametext")),
                   h4(textOutput("urltext")))
)
server <- function(input, output,session) {
  output$plot <- renderPlot({
   ggplot(data=df,aes(x=x,y=y))+
      geom_point()+
      scale_x_continuous(limits = c(0, 68))+
      scale_y_continuous(limits = c(0, 52.5))
  })
  output$selection <- renderPrint({
    nearPoints(df, input$plot_click)
  })
  info <- reactive({
    t <- as.data.frame(nearPoints(df, input$plot_click))
    s <- t[1,4]
    u <- t[1,5]
    list(s=s,u=u)
  })
  output$nametext <- renderText({info()$s})
  output$urltext <- renderText({info()$u})
}
runApp(shinyApp(ui, server), launch.browser = TRUE)

在UI中的条件级别中,我尝试过!is.na(output.nametext)output.nametext != nulloutput.nametext==trueplot_click==trueplot_click!=null等。他们都没有删除我执行点击之前存在的Na。

一种解决方案就是简单地使用:

  output$nametext <- renderText({
    if(!is.na(info()$s)){
      info()$s      
    }
  })

您也可以使用该空间通知用户,他应该单击一个点以查看信息:

  output$urltext <- renderText({
    if(!is.na(info()$s)){
      info()$u
    }else{
      print("Click on a point to get additional information")
    }
  })

最新更新