3

取引日のリストとその日に取引を行った人のユーザーIDを持っています(1日あたり1Txのみ許可されています)。例えば:

各日付で、1回のトランザクション、2〜10回のトランザクション、10〜20回のトランザクションなどを行ったユーザーの数を示すマトリックスを作成したいと思います。たとえば(以下のデータは対応していません。上記のトランザクションデータへ):

ピボットテーブルはここでの私の最良のメカニズムですか?もしそうなら(またはそうではない)、私はこれにどのようにアプローチしますか?

4

2 に答える 2

2

私の投票はピボットを使用します2007年にこのようなものがある場合

1)上記のデータを選択します2)ピボットを挿入します3)日付を行Loabelにドラッグします4)ユーザーIDを列にドラッグします=>ユーザーIDごとに1つの列を取得します5)値にyoiuにはユーザー数が必要です6)次にセグメント1〜10などに含まれるユーザー数を計算する新しい列を追加する必要があります

于 2010-01-18T00:13:16.847 に答える
1

私が言おうとしていることは少し「範囲外」であることは知っていますが、私はこのような問題を抱えていたので、代わりにRを使用して回避しました。(Rを使用していなかった場合は、SQLを試したと思いますが、Excelを選択することはできませんでした)

あなたのような「trans_data」という名前の2列のテーブルもあります。列名は「trans_date」と「user_id」です。また、特定のトランザクション制限内のユーザー数を含む、あなたのような分割表が必要でした。

これがコードです

library(plyr)
adply(table(trans_date),1,function(x) {
     d = NULL
     d["1"] <- sum(x==1)
     d["2_to_5"] <- sum(x > 1 & x <= 5) 
     d["6_to_27"] <- sum(x > 5 & x <= 27)
     d["28_to_120"] <- sum(x > 27 & x <= 120)
     d["121_to_398"] <- sum(x > 120 & x <= 398)
     d[">_398"] <- sum(x > 398)
     return(d)
   }
)

そして結果の一部

  trans_date   1 2_to_5 6_to_27 28_to_120 121_to_398 >_398
1 2009-01-25 257    169      61         7          1     0
2 2009-01-26 145    125      53         3          1     0
3 2009-01-27 175    117      44        12          0     0
4 2009-01-28 171    138      49         7          4     0
5 2009-01-29 756    217      71         5          3     0
于 2010-01-23T10:13:30.497 に答える