2013-08-20 65 views
2

系列數據我有這樣的數據幀:你如何增加一個不規則的時間中的R

dput(測試)

structure(1376661600, class = c("POSIXct", "POSIXt"), tzone = "") 

我需要一個小時,如果時間大於遞增這個值07:00和不到13:00,日期在MF。

有什麼包可以用來做這個嗎?

+1

這不是'data.frame'。你真的有'data.frame',或者只是一個'POSIXct'矢量嗎? – GSee

回答

1
# A data.frame with a .POSIXct column 
d <- data.frame(x = .POSIXct(0, tz="GMT") + 6:14*60*60) 
d 
#     x 
#1 1970-01-01 06:00:00 
#2 1970-01-01 07:00:00 
#3 1970-01-01 08:00:00 
#4 1970-01-01 09:00:00 
#5 1970-01-01 10:00:00 
#6 1970-01-01 11:00:00 
#7 1970-01-01 12:00:00 
#8 1970-01-01 13:00:00 
#9 1970-01-01 14:00:00 

# get the hours 
hour <- as.POSIXlt(d[["x"]])$hour 
subsetBool <- hour > 7 & hour < 13 # a logical vector to use for subsetting 
# replace subset with subset + 1 hour 
d[["x"]][subsetBool] <- d[["x"]][subsetBool] + 60 * 60 
d 
#     x 
#1 1970-01-01 06:00:00 
#2 1970-01-01 07:00:00 
#3 1970-01-01 09:00:00 
#4 1970-01-01 10:00:00 
#5 1970-01-01 11:00:00 
#6 1970-01-01 12:00:00 
#7 1970-01-01 13:00:00 
#8 1970-01-01 13:00:00 
#9 1970-01-01 14:00:00