2016-12-05 10 views
2

データセットにいくつかの条件変数を作成する必要があります。ループ内の置換コマンド

私はこのようにそれをやっている:

gen varx=0 

replace varx=1 if resp_127=="A" | resp_128=="A"|resp_129=="A" |/// 
resp_130=="A" | resp_131=="A" | resp_132=="A" ... 

を再びN Iは、条件にループを配置するいくつかの方法があるかどうかを知りたいので、私はresp_resp_127を記述する必要はありませんし、再び。私はちょうどresp_127からresp_140への条件を作るループを書いておきたいと思います。

+1

同じ種類の応答変数が多数あることに注意してください。「長形の変形」は良い考えである可能性があります。 –

+0

私はこれについてもNickに同意します。 –

答えて

1

このようなものは、あなたが望むことをする必要があります。

generate varx = 0 
forvalues num = 127/140 { 
    replace varx=1 if resp_`num'=="A" 
    } 
+1

指定された14個の変数とウィリアムのコードは、そのような数の場合、特にもっと多くの場合、非常に優れています。ほんのいくつかの変数については、代わりに 'gen varx = inlist(" A "、resp_127、resp_128、resp_129)'に注意してください。 –

+0

私はその技術から始め、「inlist」が10文字の変数に限られていることを時折認識しました。しかし、 'inlist'は255個までの数値変数を取ることができます。この例では、変数名が体系的でない場合にうまくいきます。 –

関連する問題