【发布时间】:2021-05-06 10:29:21
【问题描述】:
我正在尝试根据用户输入日期调用(源)代码(以决定路径),但无法执行此操作。没有错误,但是调用的(源代码)代码不起作用(我知道这一点,因为没有输出文件)。我认为我无法正确使用 eventReactive 来执行以下代码-
ui = fluidPage(
sidebarLayout(
sidebarPanel(
titlePanel("MY Outputs")
,dateInput("ME_DATE_output",label=h2("Execution Date"), value="2020-05-29")
,textOutput('dateSelectionStatement')
,hr()
,actionButton("calculate", "Calculate Again" )
,textOutput("success")
)))
server = function(input, output) {
ME_DATE_GUI <- reactive({input$ME_DATE_output})
output$dateSelectionStatement <- renderText({paste0('You have selected: ', ME_DATE_GUI()) })
Code_loc <- "K:/Codes/"
code_execution <- eventReactive(input$calculate, {source(paste0(Code_loc,"GUI_trials.r"))})
# Print a message for refresh
output$success <- renderText({paste0('Output refreshed for date - ', ME_DATE_GUI())})
}
shinyApp(ui, server)
GUI_trials 看起来像 -
# Use GUI Reactive to get the date
ME_DATE <- as.Date(ME_DATE_GUI(), format="%Y-%m-%d")
year_N_ME_DATE <- format(ME_DATE,"%Y")
month_N_ME_DATE <- format(ME_DATE,"%m")
month_T_ME_DATE <- months(ME_DATE)
# Location for Outputs
Output_DIR <- "K:/Outputs/"
Output_loc <- paste(Output_DIR,month_N_ME_DATE,". ",month_T_ME_DATE, " ",year_N_ME_DATE,"/",sep="")
success <- "Success"
write.csv(success, paste0(Output_loc,"Success.csv"))
这两个问题是 -
- ME_DATE_GUI 在源代码 (GUI_trials.r) 中未标识。即使我在服务器部分使用
ME_DATE <<- renderText({input$ME_DATE_output})并将ME_DATE <- as.Date(ME_DATE, format="%Y-%m-%d")放在GUI_trials.r 中,它也不起作用。错误是Error in as.Date.default: do not know how to convert 'ME_DATE' to class “Date” - eventReactive 似乎没有做任何事情,即 actionButton 部分对我来说是不活动的。 非常感谢任何帮助!
【问题讨论】:
-
您没有提供 MWE,因为我们无权访问您的 K 盘。
-
抱歉,我认为 K: drive 并不重要,因为我提供了从那里调用的代码 GUI_trials.r,我可以向您保证文件夹和路径存在!
-
如果您提供一个小而可重现的示例,这样我们就可以运行您的代码并遇到您面临的相同问题。
-
我认为输出可以复制到任何名为 Date 的子文件夹,我有“//Outputs/05. May 2020/”,这取决于 ME_DATE,这是放置 CSV 输出的代码的目标在这样的文件夹中。可以从任何位置选择代码(GUI_trials 放置在 //Codes/ 中)。主要问题是从 Shiny 获取日期输入并在 R 代码中使用它。