R Shiny 中的润滑问题

Lubridate problems in R Shiny

我对 R shiny 有疑问。我写了一个 R shiny 应用程序,它可以做各种事情,它做的事情之一是使用下面的 Lubridate 函数

df$UTCTime <- dmy_hms(df$UTCTime)

# note that this error cannot be fixed by using df[,2] instead of the "$" operator, as I have already tried this

这行代码在 base R 中运行良好,但是在我的 R shiny 应用程序中,它将输出日期作为看似随机的数字序列提供,就像这样

date <- dmy_hms(07/02/2019 22:03:21.714)  
# this gives the output date = 1549577001.71

我最近在我的 Shiny 应用程序中引入了一个功能,它导致了一大堆问题,当您 运行 在普通 R 脚本中使用该功能时,这些问题不会出现,我相信大多数他们可以追溯到这个问题。

如有任何帮助,我们将不胜感激!

这是我的代码的简化版本,它会产生相同的错误(没有实际错误,只是所有日期都转换为类似 1549577001.71 的日期)。

library(shiny)
library(lubridate)

converter <- function(input_data){
    df <- input_data
    df$Date <- dmy_hms(df$Date)
    return(df)
}

ui <- fluidPage(
    sidebarLayout(
        sidebarPanel(),
        mainPanel(
            tableOutput("contents")
        )
    )
)

server <- function(input, output) {
    output$contents <- renderTable({
        Date <- c("07/02/2019 22:03:21.714")
        df <- data.frame(Date)
        converter(df)
    })
}

shinyApp(ui, server)


1549577001 是 POSIXct 日期时间对象(自 1970 年以来的秒数)的内部表示。
一种解决方案是将日期输出为 character:

library(shiny)
library(lubridate)


converter <- function(input_data){
  df_ <- input_data
  df_$Date <- as.character(dmy_hms(df_$Date))
  return(df_)
}

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(),
    mainPanel(
      tableOutput("contents")
    )
  )
)

server <- function(input, output) {
  output$contents <- renderTable({
    Date <- c("07/02/2019 22:03:21.714")
    df <- data.frame(Date)
    converter(df)
  })
}

shinyApp(ui, server)