2015-04-26 8 views

risposta

6

Supponendo che il tuo tempo fosse una variabile "X", puoi usare round o trunc.

Prova:

round(X, "hour") 
trunc(X, "hour") 

Questo sarebbe ancora bisogno di qualche lavoro per determinare se i valori fossero stati effettivamente arrotondate (per round). Quindi, se non si vuole avere a pensare a questo, si può considerare l'uso del "lubridate" pacchetto:

X <- structure(c(1430050590.96162, 1430052390.96162), class = c("POSIXct", "POSIXt")) 
X 
# [1] "2015-04-26 17:46:30 IST" "2015-04-26 18:16:30 IST" 

library(lubridate) 
ceiling_date(X, "hour") 
# [1] "2015-04-26 18:00:00 IST" "2015-04-26 19:00:00 IST" 
floor_date(X, "hour") 
# [1] "2015-04-26 17:00:00 IST" "2015-04-26 18:00:00 IST" 
5

vorrei andare con il seguente involucro con base di R (è possibile specificare il fuso orario con l'argomento tz all'interno della funzione strptime)

Myfunc <- function(x){x <- strptime(x, format = "%F %H") ; c(x, x + 3600L)} 
Myfunc("2015-01-01 01:50:50") 
## [1] "2015-01-01 01:00:00 IST" "2015-01-01 02:00:00 IST" 
+0

che funziona troppo :-) io probabilmente consiglia di utilizzare 'list' invece di' C' in modo che quando si tratta di vettori come ingresso, è un po 'più facile da gestire. A proposito, da quando era il tuo fuso orario IST? – A5C1D2H2I1M1N2O1R2T1

+0

@AnandaMahto Questa è una buona domanda ... –

+1

India Standard Time :) –