簡體   English   中英

格式化selectInput()以向用戶顯示字符日期

[英]Formatting selectInput() to show character dates to the user

我目前正在構建一個閃亮的應用程序,並嘗試獲取一組日期以字符串形式呈現給最終用戶,同時在服務器端代碼中調用時仍保持其日期格式。

這里可能有一個簡單的解決方案,但是不確定如何在selectInput下拉列表中獲取要格式化的日期。 在我的實際用例中,使用日期滑塊並不理想,因為日期不遵循公共間隔。

以下是可重現的示例:

# setup
require(lubridate)
test.dates <- as.Date(c('2014-06-01', '2014-07-01', '2014-08-01',     
                        '2014-09-01', '2014-10-01', '2014-11-01',  
                        '2014-12-01', '2015-01-01','2015-02-01', 
                        '2015-03-01', '2015-04-01'))
test.names <- as.character(paste0(month(test.dates, label = T), ' ', 
                                  year(test.dates)))
test.df <- data.frame(date = test.dates)
row.names(test.df) <- test.names

# shiny
server <- function(input, output) {

   output$table <- renderTable(test.df)

}


ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      selectInput("test", label = "DATE FORMAT TEST:", choices =   
                  test.df, selected = test.df[1,])
    ),
    mainPanel(tableOutput('table'))
  )
)

shinyApp(ui = ui, server = server)

我相信您會發現,在Shiny中,傳遞character對象比date對象容易得多。 我會簡單地使用直接的character日期值,每當你需要他們date在隨后的分析對象的顯式轉換為date對象。 下面提供了一個示例,其中下拉列表和表格均具有字符格式的日期。

require(lubridate)
myDates <- c('2014-06-01', '2014-07-01', '2014-08-01',     
             '2014-09-01', '2014-10-01', '2014-11-01',  
             '2014-12-01', '2015-01-01','2015-02-01', 
             '2015-03-01', '2015-04-01')
test.names <- as.character(paste0(lubridate::month(test.dates, label=TRUE), ' ', 
                                  year(test.dates)))
test.df <- data.frame(date = myDates)
row.names(test.df) <- test.names

# shiny
server <- function(input, output) {

    output$table <- renderTable(test.df)

}


ui <- fluidPage(
    sidebarLayout(
        sidebarPanel(
            selectInput("test", label = "DATE FORMAT TEST:", choices =   
                            myDates, selected = myDates[1])
        ),
        mainPanel(tableOutput('table'))
    )
)

shinyApp(ui = ui, server = server)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM