Stataでの演算について
ここではstataで演算をする方法について説明し、基本的な四則演算と変数を用いた計算について扱います。
コマンドdisplayについて
displayとは計算結果や文字列を画面に出力するときに用いられコマンドです。まずstataを開いたら、下部のコマンド欄に
display 2+3
display 7-2
display 10/5
display 2^10
と打ち込んでいくと画面左上部に計算結果が出力されましたね。では次に、もう少し複雑な計算式で試してみましょう。
display 2+3*5+3
display (2+3)*5+3
()をつけた部分は先に計算されるので、異なる値になっていますね。今回のように簡単な計算では()を付け忘れることは少ないですが、より多くの変数や複雑な関数を扱う場合は忘れがちなので注意しましょう。
さらに、平方根、自然対数、絶対値はそれぞれsqrt(x), log(x), abs(x)を用いて出力することが可能です。
display sqrt(16)
display log(10)
display abs(-10)
変数を用いた演算について
ここでx1、x2にランダムに割り振った1から20までの整数の和をx3として出力する工程について説明していきます。まずは以下のコマンドを打ち込んでみましょう。
set obs 20
gen x1 = _n
set seed 1234
gen rnd = runiform()
sort rnd
drop rnd
set seed 5678
gen x2 = _n
gen rnd2 = runiform()
sort rnd2
drop rnd2
gen x3 = x1 + x2
1行目で扱うデータ数を20とします。次に、_nを用いて変数x1について1から20まで番号をつけてデータ番号をつけていきます。そして3行目で乱数の元となるseedを1234と設定したうえで、4行目ではruniform()を用いてrnd という変数に0から1までの乱数を割り振り振ると、下表のようになります。このとき、x1のデータ番号はrnd に割り振られた番号にそれぞれ対応していることに注意してください。
次に5行目では、0から1までの乱数を昇順に並べると、下表のようにそれぞれの乱数に対応したデータ番号も並び変わっていることが分かりますね。rndはもう使用することはないので、表を見やすくするためにdropを用いて削除しましょう。
7行目から11行目までのコマンドでx2についても同様の作業を行います。このとき、乱数の元となるseedを先ほどとは異なる5678としていることに注意しましょう。このseedを1234のままにしておくと、rnd2にはrnd1と同じ乱数が割り振られてしまいます。最後に12行目でx3をx1とx2の和であると定義すると、下表のようにx1、x2にそれぞれランダムに並べられた1から20の整数の和をx3として出力することができましたね。
ここでは変数の足し算について扱いましたが、割り算や掛け算などについても同様に演算を行うことができます。