0

嗨,我有一个如下所示的数据框:

'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)很明显,您可以看到每天不仅有一个记录。说 08/13/2013,有两条记录。我想得到当天的最低库存……所以按天分组,用最低作为记录。同时也可能存在没有任何数据的一天。

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

4

1 回答 1

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
于 2013-10-22T00:15:42.700 回答