R将数据帧更改为时间序列而非标准时间戳

时间:2013-10-21 20:38:52

标签: r

您好我有一个如下所示的数据框:

'data.frame':   57 obs. of  4 variables:
$ timestamp: Factor w/ 57 levels "08/08/2013 02:04:25 AM INFO",..: 1 2 3 4 5 6 8 7 9 10 ...
$ inStock  : Factor w/ 1 level "": 1 1 1 1 1 1 1 1 1 1 ...
$ unitPrice: Factor w/ 1 level "61.12000": 1 1 1 1 1 1 1 1 1 1 ...
$ moq      : Factor w/ 1 level "1": 1 1 1 1 1 1 1 1 1 1 ...

                 timestamp       inStock 
1  08/08/2013 02:10:41 AM INFO   100
2  08/09/2013 02:14:17 AM INFO   98
3  08/09/2013 02:27:52 AM INFO   95
4  08/10/2013 02:09:05 AM INFO   90
5  08/10/2013 02:23:21 AM INFO   80
6  08/11/2013 02:40:56 AM INFO   200
7  08/12/2013 01:10:30 AM INFO   195
8  08/12/2013 01:25:35 AM INFO   190
9  08/13/2013 01:14:39 AM INFO   180
10 08/13/2013 01:27:42 AM INFO   178
....

(1)时间戳是由Python以某种方式创建的,我不知道如何轻松地将此数据帧更改为时间序列类型对象,以便我可以进行一些基本的时间序列分析。

(2)显然,你可以看到每天不仅有一条记录。比如2013年8月13日,有两条记录。我想在那天获得最低库存......所以按天分组并使用最小值作为记录。与此同时,某些日子也可能存在没有任何数据。

那么我该如何解决这个问题,谢谢!

1 个答案:

答案 0 :(得分:1)

当我发表评论时,我没有看到你问题的第二部分。 plyr提供了一种非常简单的方法...

#  Make sure you have daily dates and integer for stock
df$timestamp <- as.POSIXct( df$timestamp , format = "%m/%d/%Y" )
df$inStock <- as.integer( df$inStock)

require(plyr)
ddply( df ,  .(timestamp) , summarise , inStock = min(inStock) )
   timestamp inStock
1 2013-08-08     100
2 2013-08-09      95
3 2013-08-10      80
4 2013-08-11     200
5 2013-08-12     190
6 2013-08-13     178