我在R中有一个DateTime对象
tempDateTime<-as.POSIXct("2017-07-13 01:40:00 MDT")
class(tempDateTime)
Run Code Online (Sandbox Code Playgroud)
[1]"POSIXct""POSIXt"
我想从DateTime对象中删除分钟.即拥有"2017-07-13 01:00:00 MDT"
有一个简单的方法吗?
在Base R
trunc(tempDateTime, units = "hours")
# "2017-07-13 01:00:00 AEST"
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为round基R中的函数有一个处理POSIX对象的方法.
从 ?round.POSIXt
舍入或截断日期时间对象.
正如@Thelatemail指出的那样,这将返回一个POSIXlt对象,因此您可能希望as.POSIXct()再次包装结果.
另一个注意事项POSIXct是存储自"1970-01-01 00:00:00"(Unix纪元)以来的秒数的对象.
as.numeric(tempDateTime)
# 1499874000
Run Code Online (Sandbox Code Playgroud)
因此,手动方式来缩小工作时间
as.POSIXct(floor(as.numeric(tempDateTime) / 3600) * 3600, origin = "1970-01-01")
Run Code Online (Sandbox Code Playgroud)