コンテンツ
非表示
Stataにおけるifや関係演算子の使い方
今回はstataで演算を行う際に、不等号や条件式をどのように扱うのかについて説明していきます。まず以下のようにコマンドしみましょう。
set obs 20
gen x1 = _n
set seed 1234
gen rnd = runiform()
sort rnd
gen x2 =_n
gen x3 = 1 if x1==x2
gen x4 = 1 if x1 != x2
gen x5 = 1 if x1 >= 5
gen x6 = 1 if x1 < 5
gen x7 = 1 if x1 <= 15
gen x8 = 1 if x1 > 15
まず4行目までは、データ数を20に設定し、変数x1には1から20までの正の整数(自然数)が出力されており、変数rndにはseed 1234における0から1までの乱数が出力されています。5行目でsort rnd を用いることで、rndの乱数を昇順に並べることができます。このとき、図のようにx1にはそれぞれの乱数に対応した番号が割り振られています。
次に6行目のようにx2に1から20までの番号を順番に割り振っていきます。そして7行目で、x1とx2が等しいときにx3に1を出力するようにコマンドを打ちます。このとき、x1とx2が等しい状態をx1==x2と表します。イコールを2つ重ねることに注意しましょう。
8行目では、x1とx2が異なる数字の場合に、x4に1と出力するようにコマンドしています。9行目ではx1が5以上のときはx5に1、10行目ではx1が5未満のときx6に1、11行目ではx1が15以下のときx7に1、12行目ではx1が15より大きいときとx8に1と出力するコマンドを表しています。