2017-04-08 7 views
0

私は、この種の構造(IDEvent)があります。可変記録イベント(なしループ)

ID Event X 
A  0  0 
A  0  0 
A  1  1 
A  0  1 
B  0  0 
B  1  1 
B  0  1 
B  1  2 
B  0  2 
B  0  2 
B  1  3 

を私はXを作成したいと思いますが、私はデータベースとして任意のループを使用することはできませんは巨大。私はどんな提案も感謝します。

編集:私は運なしbysort IDEventのいくつかの種類を試してみました:今、私はこのアプローチで働いている:

gen Spell=Event 

replace Spell=2 if Spell[_n-1]==1 & Spell[_n+1]==0 & ID[_n]==ID[_n-1] 

が、私は2番目かを区別することができないので、仕事に行くのではないです3番目の+イベントがデータベースに表示されます。

は、このような

gen X=Event[_n] 
replace X=X[_n]+X[_n-1] if _n>1 & ID[_n]==ID[_n-1] 
+0

へようこそSO!これまでに何を試しましたか?質問を編集して試行のコードを表示してください。 – MERose

答えて

0

データセットは、時間や他のシーケンス変数を必要とする解決しました。お持ちでない場合は、必ず1を作成する必要があります:何がしたいことは、あなたが持っているものよりもクリーンかつ明確であるだけ

bysort ID (t) : gen wanted = sum(event) 

ある

sort ID, stable 
by ID : gen t = _n 

。 Stataで

help sum() 
search by 
search spell 

関連するヘルプファイルと解説記事を参照してください。

(あなたがこのアプローチを知っている、しかし、あなたがしようとしたものを正確に表示しないように、私たちは間違っていたものにコメントすることはできません。)

関連する問題