Rap*_*ter 31 datetime r date rounding posixct
我正在玩很多关于我正在建造的包裹的日期和时间.
在这篇文章中磕磕绊绊地再次提醒我,在转向contrib包之前,查看是否可以使用基本R功能完成某些操作通常并不是一个坏主意.
因此,是否可以POSIXct使用基本R功能来舍入课程日期?
我检查了
methods(round)
Run Code Online (Sandbox Code Playgroud)
"只"给了我
[1] round.Date round.timeDate*
Non-visible functions are asterisked
Run Code Online (Sandbox Code Playgroud)
这是我想做的(伪代码)
x <- as.POSIXct(Sys.time())
[1] "2012-07-04 10:33:55 CEST"
round(x, atom="minute")
[1] "2012-07-04 10:34:00 CEST"
round(x, atom="hour")
[1] "2012-07-04 11:00:00 CEST"
round(x, atom="day")
[1] "2012-07-04 CEST"
Run Code Online (Sandbox Code Playgroud)
我知道这可以用timeDate,lubridate等来完成,但是我想保持包依赖性.所以在继续检查相应软件包的源代码之前,我想我会问有人已经做过这样的事情了.
Jam*_*mes 43
base必须round.POSIXt这样做.不知道为什么它没有想出来methods.
x <- as.POSIXct(Sys.time())
x
[1] "2012-07-04 10:01:08 BST"
round(x,"mins")
[1] "2012-07-04 10:01:00 BST"
round(x,"hours")
[1] "2012-07-04 10:00:00 BST"
round(x,"days")
[1] "2012-07-04"
Run Code Online (Sandbox Code Playgroud)
nzc*_*ops 14
在这个主题上lubridate,还要看看ceiling_date()和floor_date()功能:
x <- as.POSIXct("2009-08-03 12:01:59.23")
ceiling_date(x, "second")
# "2009-08-03 12:02:00 CDT"
ceiling_date(x, "hour")
# "2009-08-03 13:00:00 CDT"
ceiling_date(x, "day")
# "2009-08-04 CDT"
ceiling_date(x, "week")
# "2009-08-09 CDT"
ceiling_date(x, "month")
# "2009-09-01 CDT"
Run Code Online (Sandbox Code Playgroud)