我有一个名为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 = "")
我收到以下错误消息:
&#34; seq.int中的错误(0,to0 - from,by):&#34; to&#34;不能是NA,NaN或无限
通话:... pretty.POSIXt - &gt; prettyDate - &gt; calcSteps - &gt; seq - &gt; seq.POSIXt
执行暂停&#34;
我在StackOverflow上搜索了答案,但只找到了从12小时转换为24小时制的答案,这与我的目标相反。
我很欣赏任何见解。
答案 0 :(得分:6)
如@Pascal所述,在%H:%M:%S
的{{1}}中使用format
,然后使用strptime
转换为12小时的时间。我们可以添加%I:%M:%S
来表示“上午/下午”
%p
根据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"
,?strptime
可以替换%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"