2013-03-19 8 views
6

Sto creando un'app per analizzare i dati delle serie temporali con Shiny. I dati con cui lavoro appare come segue:Visualizzazione dell'oggetto POSIXt con Shiny renderTable

    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 

voglio tracciare i dati in una tabella:

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

In questo modo si ottiene un errore durante l'esecuzione Shiny:

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

Qualcuno ha una soluzione per questo errore?

UPDATE: l'errore è causato da xtable: renderTable usa xtable() per generare l'output, e sembra che xtable non giochi bene con le date in generale.

Una questione è stata depositata qui da Winston Chang: https://github.com/rstudio/shiny/issues/129

Una soluzione è disponibile all'indirizzo: R: xtable and dates

+0

lo come un insetto! Prova questo, 'datasubset $ V1 <- as.character (datasubset $ V1)' – agstudy

risposta

1

Guardate nella funzione strftime nel pacchetto base. Strftime formatta gli oggetti POSIXt come carattere e ti consente di specificare il formato.

Si potrebbe fare someting simile prima di stampare la tabella:
datasubset$V1 <- strftime(datasubset$V1, format="%Y-%m-%d %H:%M:%S")

0

auguriamo che questo Aiuto-

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

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

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

return(DataFrame) 

}) 

Qui è possibile tracciare la dataframe "dataframe" in mainpanel e anche possibile utilizzare questo dataframe nell'applicazione per ulteriori calcoli/modifiche utilizzando

return(DataFrame)