舍入时间到R的最近时刻

时间:2013-05-08 15:11:48

标签: r datetime timestamp posixct

我的数据格式为

time <-  c("16:53", "10:57", "11:58")

我想创建一个新列,其中每个时间都舍入到最接近的小时。我似乎无法让POSIX命令为我工作。

  

as.character(格式(data2 $ time,“%H:%M”))

format.default中的错误(结构(as.character(x),names = names(x),dim = dim(x),:   无效的'trim'参数

更别说使用round命令了。有人可以建议吗?

1 个答案:

答案 0 :(得分:15)

## Example times
x <- c("16:53", "10:57", "11:58")

## POSIX*t objects need both date and time specified
## Here, the particular date doesn't matter -- just that there is one.
tt <- strptime(paste("2001-01-01", x), format="%Y-%m-%d %H:%M")

## Use round.Date to round, then format to format
format(round(tt, units="hours"), format="%H:%M")
# [1] "17:00" "11:00" "12:00"