【发布时间】:2019-05-27 20:41:01
【问题描述】:
我有一个名为 data 的数据框,它在一列中包含日期时间信息,格式如下:mm/dd/yyyy hh:mm:ss am/pm
我想要的是创建 put timeperiod 值:1 小时内、2 小时内等。
我的数据框的几行:
time timeperiod refer x.x
1 05/07/2017 18:00:15 NA 1 23.97370
2 06/08/2017 06:21:12 NA 1 23.79394
3 06/08/2017 08:03:11 NA 1 23.79394
4 06/08/2017 08:12:47 NA 1 23.79394
5 07/07/2017 10:41:45 NA 1 23.54257
6 1/21/2017 8:10:20 AM NA 1 21.06460
7 1/9/2013 10:01:32 PM NA 2 23.99733
8 1/9/2013 10:01:32 PM NA 2 23.99733
9 1/9/2013 10:01:32 PM NA 2 21.06460
10 1/9/2013 10:01:32 PM NA 2 21.06460
我试过了: strftime(data$time., format = "%m/%d/%y %H:%M:%S" %r) 但我收到以下错误:
as.POSIXlt.character(as.character(x), ...) 中的错误: 字符串不是标准的明确格式
【问题讨论】:
-
试试
cut(as.POSIXct(df1$time, "%m/%d/%Y %I:%M:%S %p"), "1 hour") -
对于前 5 个元素,AM/PM 是什么
-
收到相同的错误:as.POSIXlt.character(as.character(x), ...) 中的错误:字符串不是标准的明确格式
-
akrun,我也注意到了,这些行是 24 小时格式的,我将它们更改为相同的格式 mm/dd/yyyy hh:mm:ss am/pm
-
您必须指定两种不同的时间格式。 12 小时制格式的行(最后 5 行)应与 @akrun 的评论中一样,而 24 小时制的行需要
%H来指定小时而不是%I,并省略%p。您需要有条件地应用这两种不同格式中的一种