使用Shiny renderTable显示POSIXt对象

时间:2013-03-19 13:10:01

标签: r shiny

我正在制作一款应用程序,用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

2 个答案:

答案 0 :(得分:1)

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

你可以在打印表格之前做这样的事情:
datasubset$V1 <- strftime(datasubset$V1, format="%Y-%m-%d %H:%M:%S")

答案 1 :(得分:1)

希望这会有所帮助 -

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

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

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

return(DataFrame)

 })

在这里,您可以在主面板中绘制数据框“DataFrame”,也可以使用它  应用程序中的数据框,以便使用

进一步计算/修改
return(DataFrame)