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

R 将24小时时间转换为12小时时间,r,R,我有一个名为bc的2列数据帧: time bc 14:56:00 NA 14:57:00 -76 14:58:00 1301 14:59:00 1057 15:00:00 -336 15:01:00 490 我尝试使用以下代码将时间变量从24小时时间转换为12小时时间: bc$time <- strptime(x = bc$time, format = "%I:%M:%S", tz =

我有一个名为bc的2列数据帧:

time      bc
14:56:00  NA
14:57:00  -76
14:58:00  1301
14:59:00  1057
15:00:00  -336
15:01:00  490
我尝试使用以下代码将时间变量从24小时时间转换为12小时时间:

bc$time <- strptime(x = bc$time,
                    format = "%I:%M:%S",
                    tz = "")

bc$time如@Pascal所述,使用
%H:%M:%S
格式的
strtime
,然后使用
%I:%M:%S
转换为12小时时间。我们可以添加
%p
来表示“AM/PM”

format(strptime(bc$time, format='%H:%M:%S'), '%I:%M:%S %p')
#[1] "02:56:00 PM" "02:57:00 PM" "02:58:00 PM" "02:59:00 PM" "03:00:00 PM"
#[6] "03:01:00 PM"
根据
?strtime
%r
可以替换
%I:%M:%S%p

format(strptime(bc$time, format='%H:%M:%S'), '%r')
#[1] "02:56:00 PM" "02:57:00 PM" "02:58:00 PM" "02:59:00 PM" "03:00:00 PM"
#[6] "03:01:00 PM"
数据
bc尝试使用
format=“%H:%M:%S”
。您知道如何缩短小时数(也就是说,前面没有零填充)?谢谢@用户29020您可以使用
sub(^0),”格式(strtime(bc$time,格式='%H:%M:%S'),'%r'))
bc <- structure(list(time = c("14:56:00", "14:57:00", "14:58:00",
"14:59:00", 
"15:00:00", "15:01:00"), bc = c(NA, -76L, 1301L, 1057L, -336L, 
490L)), .Names = c("time", "bc"), class = "data.frame", 
row.names = c(NA, -6L))