不要如何转换为类“ POSIXct”

问题描述

我正在尝试将字符串转换为POSIXct,以便使用lubridate将时间四舍五入到最近的四分之一小时。下面是代码:

x <- c("8:00","14:47","21:13","01:47","00:19")
x <- paste0(x,":00")
x <- chron(times. = x)
as.POSIXct(x,"%H:%M:%S")

我得到以下内容

as.POSIXct.default(x,“%H:%M:%S”)中的错误: 不知道如何将“ x”转换为“ POSIXct”类

解决方法

您可以将时间转换为分钟,然后round将其转换为整整十五分钟,然后将数字时间转换为POSIXct。最后,strftime为您提供了所需的格式。

x <- c("8:00","14:47","21:13","01:47","00:19")
tmp <- t(sapply(strsplit(x,":"),as.numeric))
minutes <- tmp[,2] + tmp[,1]*60
strftime(as.POSIXct((round(minutes/15)*15)/(15*4)*60^2,origin=Sys.Date(),tz="GMT"),"%H:%M:%S",tz="GMT")
# [1] "08:00:00" "14:45:00" "21:15:00" "01:45:00" "00:15:00"

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...