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

时间:2015-09-25 02:43:41

标签: 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 = "")

我收到以下错误消息:

&#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小时制的答案,这与我的目标相反。

我很欣赏任何见解。

1 个答案:

答案 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"