更改日期开始和结束时间

时间:2018-03-27 17:05:29

标签: r datetime

如何强制R更改一天的参数。所以我的意思是,例如yrDay就像这里提供的那样,不是从早上0点到早上6点,而是从下午6点到下午6点。

df <- data.frame(Date=seq(
        from=as.POSIXct("2012-1-1 13:00:00", tz="UTC"),
        to=as.POSIXct("2012-1-3 13:00:00", tz="UTC"),
        by="hour")
)
df$yrDay <- as.numeric(strftime(df$Date,format="%j"))

1 个答案:

答案 0 :(得分:0)

使用您的代码添加5小时(5 * 60分钟* 60秒):

df$yrDay <- as.numeric(strftime(df$Date + 5*60*60,format="%j"))

                  Date yrDay
1  2012-01-01 13:00:00     1
2  2012-01-01 14:00:00     1
3  2012-01-01 15:00:00     1
4  2012-01-01 16:00:00     1
5  2012-01-01 17:00:00     1
6  2012-01-01 18:00:00     2
7  2012-01-01 19:00:00     2
8  2012-01-01 20:00:00     2
9  2012-01-01 21:00:00     2
10 2012-01-01 22:00:00     2
...

或使用lubridate 6小时(更好的方法恕我直言):

df$yrDay <- lubridate::day(df$Date + 6*60*60)

但正如@ngm在评论中提到的那样,这是一个快速而肮脏的解决方案,可能并不适用于所有情况。