STATA

2017-12-12 3 views
0

で完全なデータを作成する私は、次の購買データSTATA

clear 
input id productid purchase 
1  1   1 
2  1   1 
3  2   1 
1  3   1 
end 

を持っている私は、私は多くのことを試してみました、次のデータセット

id productid purchase 
1  1   1 
2  1   1 
3  1   0 
1  2   0 
2  2   0 
3  2   1 
1  3   1 
2  3   0 
3  3   0 
end 

を作成するために、すべてのID-のProductIDコンボの行を追加したいですそれはうまくいきません。これは私の最新です。

qui sum id, d 
local obs = r(N) 
expand = `obs' 
levelsof productid, local(id) 
local j = 1 
foreach i of local id { 
    replace productid = `i' if `j' == id 
    local j = `j' + 1 
} 

答えて

0

fillinコマンド(help fillinを参照)、このタスクのためのツールです。メモリ内のサンプル・データを皮切り

fillin id productid 
replace purchase = 0 if _fillin 
drop _fillin 
sort productid id 
list, sepby(productid) abbreviate(12) 

は非常に役に立っ

 +---------------------------+ 
    | id productid purchase | 
    |---------------------------| 
    1. | 1   1   1 | 
    2. | 2   1   1 | 
    3. | 3   1   0 | 
    |---------------------------| 
    4. | 1   2   0 | 
    5. | 2   2   0 | 
    6. | 3   2   1 | 
    |---------------------------| 
    7. | 1   3   1 | 
    8. | 2   3   0 | 
    9. | 3   3   0 | 
    +---------------------------+ 
+0

を生成します。私はあなたに質問をすることができますか? 'idid'と' productid'が利用可能になった 'date'に' start_date'と 'end_date'があるとしましょう。これらの日付に注意するためにfillinを記述することは可能ですか?つまり、商品を買うことができない人には行がないようにしてください。 – CJ12

+0

私のMWEでは、私は個人に関するいくつかの不変変数を追加しませんでした。 – CJ12

+0

元のデータから2つの新しいデータセットを作成します。 (1)時間不変のデータ、時間ごとに不変なデータを含まない時間変化するデータ。 2番目のデータセットに 'fillin'を適用し、' merge m:1'を使用して、時間不変データを拡張データセットに戻します。 –