2016-05-17 21 views
-4

Stataのループに関する質問があります。表示されなかった施設を無視して残りのコマンドを実行する場合の使い方

私は複数の機関を持っています:変数school_codeはIDを示し、1から10000の範囲です。しかし、一部のコードはデータに表示されません。

したがって、特定の年に表示されない施設を無視するために、条件付きのコマンドifが必要です。

+2

に質問が曖昧であり、(使用する試み)コードのない例が含まれていない場合句を適用することができます。根本的な問題は、それらの値のいくつかがデータ内に出現しないときに1から10000までループする試行である可能性があります。 1つの技術バンドルについては、http://www.stata.com/support/faqs/data-management/try-all-values-with-foreach/index.htmlを参照してください。良い質問をする方法はhttp://stackoverflow.com/help/mcveを参照してください。 –

+0

こんにちはニック、お返事ありがとうございます。私の試みたコードは次のとおりです:forvalue i = 1(1)10000 { file4_1980_taiwan.dta、clear gen flagHost =(school_code == 'i ') bysort ut:egen flag2Host = sum(flagHost) flag2Hostなら落としてくださいegenカウント=カウント数(school_code) 重複school_code落とし、力 保存school_code数 GENホスト= 'i」は GEN年= 1980 を保つ:0 {school_code bysort が_RC ==があれば== 0 キャプチャ変数school_code を確認'i'_1980_temp.dta、置き換え } } –

+1

質問を編集してください。そのように提示されたコードはほとんど読めません。 –

答えて

1

最も直接的な方法は、これを行う必要があります(またはデータセットのコピーから)school_codeが1の範囲にされていない観測10000

drop if ! inrange(school_code,1,10000) 

に、データセットから排除することです。

あるいは、個々のコマンド

regress y x1 x2 x3 if inrange(school_code,1,10000) 
+0

これは良いテクニックかもしれませんが、私の推測は、OPの問題が異なるということです。 –

関連する問題