2015-04-26 28 views
6
numaralı telefondan

"2015-01-01 01:50:50"'u geçtiğimi varsayalım, sonra "2015-01-01 01:00:00" ve "2015-01-01 02:00:00"'a dönmelidir. R'de bu değerler nasıl hesaplanır?R saatinde bir saatte bulun ve

cevap

6

Saatinizin "X" değişkeni olduğunu varsayarak, round veya trunc'u kullanabilirsiniz.

Dene: Bu hala değerlerin aslında (round için) yukarı veya aşağı yuvarlandığını olmuştu olmadığını belirlemek için bazı işler gerektirecektir

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

.

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

Ben baz R kullanarak aşağıdaki sargı ile gider (kullandığınız zaman dilimini belirtebilirsiniz: Yani, "lubridate" paketini kullanarak düşünebilirsiniz, bu konuda düşünmek zorunda istemiyorsanız girdi olarak vektörler ile uğraşırken o, o yönetmek için biraz daha kolay bu yüzden muhtemelen kullanarak öneriyoruz I :-) çok çalışır strptime işlev içinde tz argüman)

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

'yerine C'' arasında list '. Bu arada, ne zamandan beri IST? – A5C1D2H2I1M1N2O1R2T1

+0

@AnandaMahto Bu iyi bir soru ... –

+1

India Standard Time :) –

İlgili konular