互动闪亮的全球约会选择器

时间:2018-06-01 20:27:40

标签: r shiny

我在一个没有好日期选择器的环境中与R合作,我正在尝试使用R弹出日期选择器以填补空白。

大多数R日期选择器都需要像GTK这样的UI库。 Shiny's没有。 我想做的就是弹出一个日期选择器,让用户选择日期然后结束闪亮的会话并将日期传回来继续R脚本。

这是我到目前为止所做的,但没有成功。我正在尝试将日期分配给全局变量x。

library("shiny")
## Only run examples in interactive R sessions
if (interactive()) {

  ui <- fluidPage(
    # Default value is the date in client's time zone
    dateInput("date2", "Date:"),
    verbatimTextOutput("date2")

  )

  shinyApp(ui, server = function(input, output) {
  reactive(x <<- input$date2)

  })
}

但是变量x没有出现在全局环境中。

2 个答案:

答案 0 :(得分:2)

这里的问题是你永远不会打电话给那个反应对象。在服务器中,您必须执行以下操作:

shinyApp(ui, server = function(input, output) {
  observeEvent(input$date2, {x <<- input$date2})
})

这样,input$date2的更改将触发x的全局分配。

答案 1 :(得分:1)

您也可以执行以下操作,在会话结束时将值分配给全局环境。

library("shiny")
## Only run examples in interactive R sessions

ui <- fluidPage(
  # Default value is the date in client's time zone
  dateInput("date2", "Date:"),
  verbatimTextOutput("date2")

)

shinyApp(ui, server = function(input, output, session) {
  session$onSessionEnded(function() {
    assign("x", isolate(dat()), pos =  .GlobalEnv)
  })
  dat <- reactive({
    req(input$date2); 
    x <- input$date2
    x
    })
})