R:尝试将时间AM / PM值转换为24h时出现问题

时间:2019-07-12 15:18:45

标签: r datetime type-conversion

我有一个数据框,称为“ dataall”,其中除其他外,它的时间值列“ Times”带有AM / PM指示,类字符为:

dataall$Time[1:10]  
[1] "12:50 AM" "1:50 AM"  "2:50 AM"  "3:50 AM"  "5:20 AM"  
[6] "5:50 AM"  "6:20 AM"  "6:50 AM"  "7:20 AM"  "7:50 AM"

我希望数据为24小时格式。 阅读一些帖子后,我做了以下尝试:

1: dataall $ time24h <-as.POSIXct(dataall $ Time,format ='%I:%M%p')

2: dataall $ time24h <-format(strptime(dataall $ Time,“%I:%M%p”),format =“%H:%M”)

但是我收到NAs

1 个答案:

答案 0 :(得分:0)

您可以尝试使用lubridate软件包中的parse_date_time功能

v1 <- c("12:50 AM", "1:50 AM", "2:50 AM", "3:50 AM", "5:20 AM", "5:50 AM", "6:20 AM", "6:50 AM", "7:20 AM", "7:50 AM", "7:50 PM")
x <- lubridate::parse_date_time(v1,'H:M p')
format(x, format = '%H:%M')

#[1] "00:50" "01:50" "02:50" "03:50" "05:20" "05:50" "06:20" "06:50" "07:20" "07:50" "19:50"

如果存在语言环境问题,请查看parse_date_time的帮助以获取一些建议。