【发布时间】:2017-02-01 06:17:47
【问题描述】:
我在 Shiny 中有一个小问题。我开发了一个应用程序,该应用程序将根据用户在下拉菜单中的选择调用/源脚本,并且被调用的脚本将创建一个预测变量作为时间序列、另一个时间序列(包含实际值以及回归量的值)和一个包含预测的 MAPE 值。我已经构建了 2 个输出(都是 renderDygraph ),我将分别提供预测和实际时间序列值。我写的代码如下
server <- function(input, output) {
test <- function(var){
switch(var,
"5184-7740" = source("5184-7740.R"),
"5184-8554" = source("5184-8554.R"))
}
f1 <- reactive({
test(input$state)
forecast # Contains the forecast values
})
f2 <- reactive({
test(input$state)
rr # Contains the actual time series along with regressors
})
output$plot1<-renderDygraph ({
dygraph(dd(), main = "Inventory Level Forecasts") %>%
dyRangeSelector() %>%
dyAxis("y", label = "Inventory Level in Millions")
})
output$plot2<-renderDygraph ({
dygraph(dd2(), main = "Actual Time Series") %>%
dyOptions(colors = RColorBrewer::brewer.pal(3, "Set2")) %>%
dyAxis("y", label = "Quantity in Millions")
})
}
现在我的查询是,是否可以从单个反应式表达式中同时调用预测和 rr。因为目前,它为每个输出图执行两次并调用相同的脚本两次。有什么方法可以定义单个反应语句并使用某些语句调用预测变量和实际时间序列(例如:f1$forecast 和 f1$rr,但 $ 不起作用)。我还计划动态显示 MAPE 值,因此我将定义一个 renderText 块,但我不想再次在反应式表达式中获取相同的脚本只是为了获取 MAPE 变量。我希望我已经清楚地解释了我的问题,如果问题不够清楚,请告诉我。提前非常感谢。
【问题讨论】: