16

我有格式的数据

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

ETC

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

as.character(format(data2$time, "%H:%M"))

格式错误(结构(as.character(x),名称=名称(x),暗淡=暗淡(x),:无效的“修剪”参数

更不用说使用 round 命令了。任何人都可以建议吗?

4

1 回答 1

21
## 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"
于 2013-05-08T16:15:25.623 回答