【问题标题】:User Defined Function To Run Once When Input Changes输入更改时运行一次的用户定义函数
【发布时间】:2021-06-25 19:35:55
【问题描述】:

我对 R 和 Shiny 仪表板很陌生。我创建为用户定义的函数,以根据我通过 selectizeInput 在 Shiny Dashboard 上选择的特定类别运行百分位数分析。该函数返回 10 个项目作为表格和图表之间的输出。我试图找到一种方法,仅在输入更改并调用 10 个项目时刷新函数一次,而不是为列表中的每个输出运行函数 10 次。我尝试在下面重新创建一个小示例:

用户定义函数

GetPercentileAnalysis(组名)

GetPercentileAnalysis=function(GroupName){

(...)

list(output1,output2,output3)

}

在闪亮中,我目前正在创建如下输出:

output$output1<-renderPlotly({
   GroupName<-input$GroupNameInput
   GetPercentileAnalysis(GroupName)[[1]]
})

output$output2<-renderPlotly({
   GroupName<-input$GroupNameInput
   GetPercentileAnalysis(GroupName)[[2]]
}) 

output$output3<-renderPlotly({
   GroupName<-input$GroupNameInput
   GetPercentileAnalysis(GroupName)[[3]]
})

函数运行3次的问题。有没有办法定义函数并使其运行一次并推断输出?如果这听起来像是一个非常愚蠢的问题,但希望有任何帮助,我们深表歉意

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    您可以使用reactive 来计算数据:

    my_reactive <- reactive({
       GroupName<-input$GroupNameInput
       GetPercentileAnalysis(GroupName)
    })
    

    然后在情节中使用它

    output$output1<-renderPlotly(my_reactive()[[1]])
    
    output$output2<-renderPlotly(my_reactive()[[2]])
    
    output$output3<-renderPlotly(my_reactive()[[3]])
    })
    

    【讨论】:

      猜你喜欢
      • 2011-06-20
      • 1970-01-01
      • 2019-01-17
      • 2013-10-16
      • 2023-01-31
      • 1970-01-01
      • 2018-11-03
      • 1970-01-01
      • 2015-06-06
      相关资源
      最近更新 更多