所以我正在尝试用R Shiny开发,我要求用户做5个文件输入。然后我有一个反应函数 mergeFun() ,它将在输入完成后将数据转换并合并到一个数据集中。
然后我在我的不同tabPanel中有多个按钮,箱形图,renderUI,输出,PCA,回归树,...这些中的每一个调用函数 mergeFun() 为了进行统计分析。
因为在输入加载这些面板的所有面板之后花了相当长的时间,我想知道是否有一种方法可以全局调用函数并将合并的数据存储在一个全局变量中。
我在想也许是因为我在tabPanels中的每次分析中调用了这个函数x次,这导致时间流逝。 所以我只能调用数据而不是调用函数 mergeFun()
我发布了修改后的代码,让您了解我在做什么
mergeFun <- reactive({
#So there I had my test about if my files existed
#I delete for visibility
cast <- dcast(input,var1 + var2,value.var = "var3")
mergeAll <- merge(input2,cast,by=c("var1","var2","var3"))
data.frame(mergeAll)
})
所以这是我的 mergeFun() ,然后我有很多被动和renderUI,这些都会像这样开始:
output$xcol <- renderUI({
df <-mergeFun()
if (is.null(df)) return(NULL)
...
...
...
})
因此,调用mergeFun()x次可能无法以编程方式有效吗?