6

我正在制作一个应用程序来用 Shiny 分析时间序列数据。我使用的数据如下所示:

                   V1     V2
1 2013-02-04 18:15:00 -4.746
2 2013-02-04 18:20:00 -4.745
3 2013-02-04 18:25:00 -4.746
4 2013-02-04 18:30:00 -4.747
5 2013-02-04 18:35:00 -4.747
6 2013-02-04 18:40:00 -4.747

我想在表格中绘制数据:

output$view <- renderTable({
  head(datasubset(), 
  n=nrow(datasubset()))
})

这样做我在运行 Shiny 时遇到错误:

Error in Math.POSIXt(x + ifelse(x == 0, 1, 0)) : 
      'abs' not defined for "POSIXt" objects

有没有人有这个错误的解决方案?

更新:错误是由 xtable 引起的:renderTable 使用 xtable() 生成输出,看起来 xtable 通常不能很好地处理日期。

Winston Chang 在这里提出了一个问题: https ://github.com/rstudio/shiny/issues/129

解决方法可在以下位置获得:R: xtable and dates

4

2 回答 2

3

查看基本包中的 strftime 函数。Strftime 将 POSIXt 对象格式化为字符,并让您指定格式。

在打印表格之前,您可以执行以下操作:
datasubset$V1 <- strftime(datasubset$V1, format="%Y-%m-%d %H:%M:%S")

于 2015-04-15T10:43:44.183 回答
1

希望这会有所帮助-

output$$view  <- DT::renderDataTable({

DataFrame<<-read.xlsx(inFile$datapath, 1 )

datatable(DataFrame)%>%
  formatDate(2, method = 'toISOString')

return(DataFrame)

 })

在这里,您可以在主面板中绘制数据框“DataFrame”,也可以在您的应用程序中使用此数据框进行进一步的计算/修改

return(DataFrame)
于 2017-11-07T09:07:57.457 回答