使用通过Dateinput输入的日期作为文件名

时间:2018-12-24 02:59:34

标签: date

我有一个闪亮的UI,允许用户通过dateinput框选择日期。给定的输出将每天备份,因此要使用这样的“日期”,例如20181224作为文件名的一部分。

library(shiny)
library(shinyFiles)

ui <- fluidPage(

sidebarPanel(

dateInput("COBInput", "Select a Date", value=Sys.Date())

))

server <- function(input,output,session){

COB <- reactive(as.Date(input$COBInput,format="%Y-%m-%d"))
COB2 <- paste(
"Test",as.character(
format(input$COBInput,format="%Y-%m-%d",'%Y')
)
)}
shinyApp(ui,server)

我得到的错误:

  

http://127.0.0.1:4973
  警告:.getReactiveEnvironment()$ currentContext中的错误:不允许进行操作
  没有积极的反应性环境。 (您尝试做的事情只能是
  从反应式表达式或观察者内部完成。)    54:停止    53:.getReactiveEnvironment()$ currentContext    52:.subset2(x,“ impl”)$ get    51:$。reactivevalues    47:服务器[N:/ AdHoc Query / R / FFVA / DateInputTest / ShinyApp.R#42]   .getReactiveEnvironment()$ currentContext()中的错误:    没有活动的响应上下文,不允许进行操作。 (您尝试做只能从反应式表达式或观察器内部完成的操作。)

我希望每天可以保存名称为“ Daily20181224”,“ Daily20181221”等的文件

1 个答案:

答案 0 :(得分:0)

我完全不清楚要求,但尝试使用textoutput可以使您了解如何生成文件名。

library(shiny)
library(shinyFiles)

ui <- fluidPage(

  sidebarPanel(

    dateInput("COBInput", "Select a Date", value=Sys.Date()),
    textOutput("filename")

  ))

server <- function(input,output,session){

  output$filename<-renderText({
    input_date<-input$COBInput
    year <- as.numeric(format(input_date,'%Y'))
    month<-as.numeric(format(input_date,'%m'))
    day<-as.numeric(format(input_date,'%d'))
    paste0("Daily",year,month,day)
  })
} 
shinyApp(ui,server)  

我认为您现在可以生成文件名 关于ShinyFiles,我想说一件事-我想您知道它只能在部署后用于服务器端文件浏览。