这是我第一次使用Shiny,如果这太基础了,就对不起。
我有一个名为some_global_function()
的全局函数,每当按下名为actionButton
的{{1}}时,我就会调用它。这将创建一个名为ok_input
的局部变量。
现在,我希望每当按下另一个 algorithm_output
(actionButton
)时就可以访问该变量,但又不必再次调用函数ok_means
。
有办法吗?该代码将是这样的:
some_global_function()
答案 0 :(得分:0)
只需在任何子函数外部创建变量,然后使用<<-
更新其值。该变量在每个会话中都是全局变量。
server <- function(input, output) {
# init variable here
algorithm_output <- NULL
out_plots <- eventReactive(input$ok_input, {
# to modify a global variable use <<- instead of <- or =
algorithm_output <<- some_global_function(3, 2, 1)
do.call("grid.arrange", c(algorithm_output$indexes, nrow=3))
})
output$indexes <- renderPlot({
out_plots()
})
out_means <- eventReactive(input$ok_means, {
k = as.integer(input$k)
# you can get access to the updated value of your variable
matplot(algorithm_output$means[[k-1]], type = "l", lty=1)
})
output$means <- renderPlot({
out_means()
})
}