R 将24小时时间转换为12小时时间
我有一个名为bc的2列数据帧: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 =
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))