【发布时间】:2023-03-30 04:43:01
【问题描述】:
我有一个 character 列,其中包含 12 小时格式的时间,例如:下午 2:59:00、上午 4:35:00、下午 6:00:00 等。
如何使用 lubridate(或其他一些功能)将这些时间转换为 24 小时制?我尝试使用 HMS 功能,但它只是剥离了 AM/PM,而没有实际将时间转换为 24 小时制......
编辑:我尝试了这篇文章的答案:Convert 12 hour character time to 24 hour
这是我的代码:lab_data[,LAB_TM_test:=format(strptime(LAB_TM, "%I:%M %p"), format="%H:%M:%S")]
但这会导致我的专栏变成全部 NA 并给我这个警告:
“警告信息: 在 strptime(LAB_TM, "%I:%M %p") : 检测到 strptime() 用法并用 as.POSIXct() 包装。这是为了尽量减少分配 POSIXlt 列的机会,这些列使用 40+ 字节来存储一个日期(而 POSIXct 使用 8 个字节)。使用 as.POSIXct() (它将根据需要在内部调用 strptime() )以避免出现此警告。"
EDIT2:这是我的列的样子,它是一个字符列:
c("2:59:00 PM", "4:35:00 AM", "6:00:00 PM", "6:00:00 PM", "6:00:00 PM", “6:00:00 PM”、“6:00:00 PM”、“6:00:00 PM”、“5:35:00 AM”)
【问题讨论】:
-
这能回答你的问题吗? Convert 12 hour character time to 24 hour
-
嗨,我之前试过这个,但它不起作用,它导致我的专栏中的所有 NA。这是我尝试过的: lab_data[,LAB_TM_test:=format(strptime(LAB_TM, "%I:%M %p"), format="%H:%M:%S")] 但这只会导致 NAs
-
你能提供一些示例数据吗?
-
确定我已经编辑了我的帖子
-
尝试使用
dput(lab_data[1:9, LAB_TM])代替图片,我们无法复制。
标签: r date datetime time lubridate