詳細な時系列データフレームを作成しようとしています。複数のデータ ポイントの月次データを取得し、複数の要因でグループ化しようとしています。ドキュメント、ビネット、または SO でこれに近い例を見たことがないため、これが可能かどうかはわかりません。
構造化しようとしているサンプルデータは次のとおりです。
clients <- 1:100
dates <- seq(as.Date("2012/1/1"), as.Date("2012/9/1"), "days")
categories <- LETTERS[1:5]
products <- data.frame(clientID = sample(clients, 10000, replace = TRUE),
OrderDate = sample(dates, 10000, replace = TRUE),
category = sample(categories, 10000, replace = TRUE),
numProducts = sample(1:10, 1000, replace = TRUE),
OrderTotal = sample(1:100, 1000, replace = TRUE))
出力は次のようになります。
head(products)
clientID OrderDate category numProducts OrderTotal
1 90 2012-03-20 D 9 18
2 66 2012-08-19 A 3 50
3 45 2012-05-25 A 10 75
4 28 2012-01-01 D 4 27
5 71 2012-02-28 A 4 76
6 26 2012-01-28 C 8 89
私が取得しようとしている構造は、次のようになります。
Category A ... Category E
ClientID Jan2012numProducts Jan2012OrderTotal Feb2012numProducts Feb2012OrderTotal ... Sep2012numProducts Sep2012OrderTotal
1 12 78 6 52 0 0
2 7 218 3 15 1 28
...
99999 20 192 10 100 28 156
列名はおそらく長くなり、AJan2012numProducts や AJan2012OrderTotal のようになりますが、それで問題ありません。
ここに私が不明な手順があります - 繰り返しますが、ドキュメントやビネットで参照されている手順を見つけることができません:
1)zoo
複数の観測フィールドの集計はできますか? この場合、当月の numProducts と OrderTotal の合計を同時に取得したいと考えています。zoo
できなくても、merge
関数を使用して clientID とカテゴリに参加 できます
2) zoo
1 つの要因 (または複数の要因) でグループ化して集計を実行できますか? clientID とカテゴリを月ごとに見られるようにしたいです。
3) X 軸に沿ってカテゴリと月を含むデータフレームを作成する機能はありますか。そうでない場合、時系列データを clientID とカテゴリで単純にグループ化できれば、 を使用reshape
して時系列を広くすることができますcast
。データフレームをこの構造に入れる必要があります。
head(df)
clientID Month category numProducts OrderTotal
1 2012-01-31 A 12 78
1 2012-01-31 B 0 0
....
99999 2012-09-30 D 6 71
99999 2012-09-30 E 1 28
cast(df, month~category, sum) (or something close to that)
これは可能ですか?いくつかの例を教えていただけますか?