R 将12小时字符时间转换为24小时

R 将12小时字符时间转换为24小时,r,R,我有一个字符格式的时间数据集。我正试图把它从12小时格式改为24小时格式。我做了一些搜索,但我发现的一切似乎都假设字符已经是24小时格式。这是一个与我共事的时代的例子 times <- c("9:06 AM", "4:42 PM", "3:05 PM", "12:00 PM", "3:38 AM") 次这应该可以: times <- c("9:06 AM", "4:42 PM", "3:05 PM", "12:00 PM", "3:38 AM") strptime(times,

我有一个字符格式的时间数据集。我正试图把它从12小时格式改为24小时格式。我做了一些搜索,但我发现的一切似乎都假设字符已经是24小时格式。这是一个与我共事的时代的例子

times <- c("9:06 AM", "4:42 PM", "3:05 PM", "12:00 PM", "3:38 AM")
次这应该可以:

times <- c("9:06 AM", "4:42 PM", "3:05 PM", "12:00 PM", "3:38 AM")

strptime(times, "%I:%M %p")

## [1] "2015-04-23 09:06:00 EDT" "2015-04-23 16:42:00 EDT"
## [3] "2015-04-23 15:05:00 EDT" "2015-04-23 12:00:00 EDT"
## [5] "2015-04-23 03:38:00 EDT"

我使用了两个手指(我已经说清楚了),但我克服了这一困难,因为我的.Rprofile中有函数可以注释(散列)和缩进4个空格,这在添加代码时节省了时间。所以我作弊更好,而不是打字更快:-)你对CDT/EDT/PDT等东西怎么看?谢谢你对时区的警告!太好了,谢谢!我在搜索时确实找到了strtime,但无法找出如何排除日期,因为我已经在另一个变量中找到了它。帽尖
format(strptime(times, "%I:%M %p"), format="%H:%M:%S")
## [1] "09:06:00" "16:42:00" "15:05:00" "12:00:00" "03:38:00"
times <- c("9:06 AM", "4:42 PM", "3:05 PM", "12:00 PM", "3:38 AM")
print(as.POSIXct(times, format='%I:%M %p'))

[1] "2015-04-23 09:06:00 CDT" "2015-04-23 16:42:00 CDT" "2015-04-23 15:05:00 CDT" "2015-04-23 12:00:00 CDT"
[5] "2015-04-23 03:38:00 CDT"