我已经构建了一个闪亮的应用程序,它位于以下URL。
https://hdoran.shinyapps.io/openAnalysis/
在名为&#34的选项卡上;选择CrossFit Open Data"我有一个textInput()函数调用一个使用grep()的函数,该函数用于在数据框中查找名称。
第一次加载程序并输入名称时,搜索似乎很快就会发生,并返回名称。但是,当我删除名称并键入第二个名称时,搜索似乎非常慢。
我能做些什么来优化它,以便始终快速执行?
我仍然很擅长闪亮,并且不确定是否以某种方式使这成为一个反应性表达会有所帮助。如果是这样,我不太确定如何。
提前致谢。
ui.R文件中相关的代码部分
textInput("name", label = 'Enter an athlete name and find your scores',
value = "Enter Name Here")
和server.R文件中的相关代码部分是
output$myScores <- renderPrint({
df <- filedata()
df[grep(input$name, df$Competitor),]
})
此部分也在ui.R文件中(虽然我不确定它与问题有关)
verbatimTextOutput("myScores"),
答案 0 :(得分:0)
如果我正确理解了您的目标,您希望用户能够根据搜索competitor
调用的数据框的filedata()
列来选择输入变量吗?如果是这样,selectizeInput()
就是您正在寻找的,使用服务器端选择as outlined here。
改编自您提供的代码:
ui.r
selectizeInput("name", choices = NULL, multiple = FALSE)
server.r
updateSelectizeInput(session, "name", choices = filedata()$competitor, server = TRUE)
output$myScores <- renderPrint({
df <- filedata()
subset(df, competitor==input$name)
})