[英]R: Shiny - update dateRangeInput start and end
我在RStudio中使用'閃亮'。
我希望使用數據集的最小值和最大值更新dateRangeInput小部件的預選日期。
當我嘗試下面的代碼(僅針對開始日期進行簡化)時,開始日期不會顯示在日期范圍小部件的左側框中:相反,該框顯示為空白(但它實際上設置為今天的日期 - 單擊時在空盒子上,顯示今天日期的日歷)。
ui.r:dateRangeInput(“dates”,label =“Date range”,start ='mydatestart',end ='2014-05-06')
實際選擇最小日期,因為它在使用時顯示
ui.r:textOutput('mydatestart')
這是一個可重復的例子:
ui.R
library(shiny) shinyUI({ sidebarPanel( dateRangeInput("dates", label = "Date range", start='mydatestart', end = '2014-05-06'), textOutput('mydatestart') ) })
server.R
shinyServer(function(input, output) {
mydate<-c("2013-04-24", "2013-04-25", "2013-04-26", "2013-04-27", "2013-04-28", "2013-04-28", "2013-04-29", "2013-04-30")
output$mydatestart<-renderText(min(mydate))
})
使用輸出$ mydatestart <-renderText(as.Date(min(mydate)))會產生同樣的問題。
你知道為什么會這樣嗎?
謝謝,Yvan
mydatestart
這樣的字符串文字作為參數傳遞給dateRangeInput
因為它會解釋為 - 一個字符串 - 這就是start
字段為空的原因。 你需要給它一個合法的價值。 shinyUI
調用中缺少一些關鍵功能,如下所示。 global.R
文件中,用於閃亮的應用程序,而不是在shinyServer
函數中定義它們,這是更慣用的。 ui.R
library(shiny)
shinyUI({
## fluidPage(...)
fluidPage(
## sidebarLayout(...)
sidebarLayout(
sidebarPanel(
dateRangeInput(
"dates", label = "Date range",
start = min(mydate),
end = '2014-05-06'),
uiOutput("mydatestart2")
),
mainPanel(textOutput('mydatestart'))
)
)
})
server.R
library(shiny)
shinyServer(function(input, output) {
# not accessable in UI
output$mydatestart <- renderText(min(mydate))
# accessable in UI
output$mydatestart2 <- renderUI({
dateRangeInput(
"dates2",
label = "Reactive Start Date",
start = as.Date(input$dates[1]) + 7,
end = as.Date(input$dates[1]) + 14
)
})
})
global.R
mydate <- c("2013-04-24", "2013-04-25", "2013-04-26",
"2013-04-27", "2013-04-28", "2013-04-28",
"2013-04-29", "2013-04-30")
您可以將dateRangeInput
放入server.R
以便可以使用其中定義的任何對象作為參數:
library(shiny)
ui <- shinyUI({
sidebarPanel(
htmlOutput("selector"),
textOutput('mydatestart')
)
})
server <- shinyServer(function(input, output) {
mydate<-c("2013-04-24", "2013-04-25", "2013-04-26", "2013-04-27", "2013-04-28", "2013-04-28", "2013-04-29", "2013-04-30")
output$mydatestart<-renderText({min(mydate)})
output$selector <- renderUI({
dateRangeInput("dates", label = "Date range"
, start=min(mydate), end = '2014-05-06')
})
})
shinyApp(ui = ui, server = server)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.