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) 明らかに、毎日のレコードが 1 つだけではないことがわかります。2013 年 8 月 13 日の場合、2 つのレコードがあるとします。その日の最小在庫を取得したいので、日ごとにグループ化し、最小をレコードとして使用します。一方、データがない日もあるかもしれません。

どうすればそれを回避できますか、ありがとう!

4

1 に答える 1

1

私がコメントしたとき、あなたの質問の 2 番目の部分がわかりませんでした。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 に答える