R 将字符串转换为时间

Tra*_*acy 3 string formatting time r

我想将字符串转换为时间。我有一个时间字段,其中字符串只有四位数字和一个字母(A 或 P)。数字之间没有冒号,表明它是时间。我想将 12 小时的字符串转换为 24 小时的时间,这样我就可以删除 A 和 P。

这是一个例子:

time = c("1110A", "1120P", "0420P", "0245P")
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个像这样的时间类:

Answer= c('11:10', '23:20', '16:20', '14:45')
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

det*_*ejr 5

strptime对字符串进行一点小更改后,您可以使用该函数从字符串创建日期。

time <- c("1110A", "1120P", "0420P", "02:45P")
time <- gsub(":", "", time)
time <- strptime(x = paste0(time, "m"), format = "%I%M%p")
Run Code Online (Sandbox Code Playgroud)

paste需要使用strptime我们给定的格式进行解析。%I是小时 (00-24),%M是分钟,%p用于解析 AM/PM。

一旦它被解析为日期,您可以使用格式进行漂亮的打印,或者使用普通的运算符,如+, -,diff等......

strptime在解析日期时为您提供了很大的灵活性,但有时当日期不是标准格式时您必须尝试一些操作。