如何强制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"))
答案 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在评论中提到的那样,这是一个快速而肮脏的解决方案,可能并不适用于所有情况。