Shiny应用使用plot_click/nearPoints仅展示指定字段的实现方法
解决方案
你要实现仅展示指定字段的需求,只需对nearPoints()返回的结果做字段筛选即可,操作非常简单:
核心修改步骤
- 替换你原有代码里的
output$print模块,对返回结果用select()选中需要的字段即可,你需求里的冠军姓名对应数据集中的winner字段,夺冠次数对应winningNumber字段,同时可以新增distinct()去重,避免分组后重复行导致返回冗余数据:
output$print = renderPrint({ nearPoints( reactive_data(), input$plot_click, maxpoints = 1, threshold = 1000 ) %>% # 按需选中字段,也可以自定义列名更易读 select(冠军姓名 = winner, 夺冠次数 = winningNumber) %>% distinct() })
- (可选优化)你当前的
reactive_data用mutate计算夺冠次数,会保留该冠军所有历史参赛行,同一个冠军对应多条重复统计结果,建议改用summarise直接生成去重后的统计结果,提升运行效率:
reactive_data<-reactive({ req(input$sel_tournament) df<- gslam %>% filter(tournament %in% input$sel_tournament)%>% group_by(winner,tournament)%>% summarise(winningNumber=n(), .groups = "drop") %>% arrange(winner) df })
修改后点击图表只会返回你需要的两个字段,不会展示其他冗余字段。
内容的提问来源于stack exchange,提问作者A Ebrahimi
相关产品推荐
相关产品推荐

