現在扱っているデータセットでは、``male``(男性)の列で ``1`` が男性 ``0`` が女性となっています。これで特に分かりにくいことはありませんが、もう少し複雑なカテゴリー変数を扱うこともあると思います。そのようなときにラベルを設定することで、数字にしか見えていないものを文字として表示することができます。
ラベルの設定の仕方は2段階からなっており、まずラベル「1が男性、0が女性」を設定し、つぎにそのラベルを変数``dansei`` に割り当てます。
ではまずラベルを作成しましょう。次のようにして設定します。
. label define genderlabel 1 "dansei" 0 "jyosei"
文法としては ``label define`` で「ラベルを定義しますよ」といっています。そのあとに ``genderlabel`` と続けることで ``genderlabel`` という名前のラベルを作成します。その ``genderlabel`` ラベルの中身は ``1 "dansei" 0 "zyosei"`` で、1 が dansei(男性)、0 が jyosei(女性)として表示されるようになります。
つぎに作ったラベルを変数 ``male`` に割り当てましょう。
. label values male genderlabel
``label values`` につづけて、``(ラベルを割り当てたい変数)(ラベル)`` の順に記載すると、変数にラベルを割り当てることができます。
試しに データエディタでを表示してみると、先ほどまで 0 と 1 で表示されていた ``male`` のところが次のように変わっていることが確認できます。

結果はもちろん ``list`` でも確認できます。
. list in 9/12
+-------------------------------+
| id male height weight |
|-------------------------------|
9. | 9 dansei 177.3 69.7 |
10. | 10 dansei 175.5 64.7 |
11. | 11 jyosei 155.9 48.2 |
12. | 12 jyosei 164.5 52.1 |
+-------------------------------+
注意していただきたいのが、ラベルとして表示されていても、それは数字として Stata の解析では扱われるということです。
数字で扱われているので、男性を 0 女性を 1 として平均や標準偏差を計算することができます。
. summarize male
Variable | Obs Mean Std. Dev. Min Max
-------------+---------------------------------------------------------
male | 20 .5 .5129892 0 1
ラベルを削除したい場合は、次のように ``label drop`` を実行すれば良いです。今は分かりやすいので一旦ラベルは削除しておきましょう。
. label drop genderlabel
ラベルについての詳細を知りたい場合は ``help label`` を実行してヘルプを表示してください。
## おすすめの表示方法 tabstat
最初に自動車の例で ``summarize`` で統計量を表示する方法を示しましたが、``tabstat`` コマンドも統計量を示すうえで非常に有用です。``tabstat`` を使えば平均以外にも色々な統計量を表示することができます。
まずは、既に学習した ``summarize`` で表示してみます。
. summarize height weight
Variable | Obs Mean Std. Dev. Min Max
-------------+---------------------------------------------------------
height | 20 170.525 13.22609 140.1 199.2
weight | 20 60.99 11.32231 40.3 88
対象となる人数、平均、標準偏差、最小、最大が表示されています。だいたいの場合はこれで足りるのですが、中央値や四分位範囲も表示したくなることがあります。その場合に ``tabstat`` が役に立ちます。
まずシンプルに ``tabstat`` を実行してみましょう。``tabstat`` のあとに統計量を表示したい変数を示します。
. tabstat height weight
stats | height weight
---------+--------------------
mean | 170.525 60.99
------------------------------
シンプルに実行した場合、``mean``(平均値)だけが表示されるようです。このままでは ``summarize`` より情報量が少なくなってしまいますね。
この問題はオプションで解決できます。次のように ``statistics`` オプションを追加してみましょう。
. tabstat height weight, statistics(n mean sd min max)
stats | height weight
---------+--------------------
N | 20 20
mean | 170.525 60.99
sd | 13.22609 11.32231
min | 140.1 40.3
max | 199.2 88
------------------------------
これで ``summarize`` と同じ情報が表示されました。``statistics`` と入力するのが面倒であれば、シンプルに ``s`` だけでもよいです。
. tabstat height weight, s(n mean sd min max)
stats | height weight
---------+--------------------
N | 20 20
mean | 170.525 60.99
sd | 13.22609 11.32231
min | 140.1 40.3
max | 199.2 88
------------------------------
``n`` はデータの数 (number)、``mean`` は平均値、``sd`` は標準偏差、``min`` は最小値、``max`` は最大値を表示するように指示しています。追加で中央値(メディアン)と四分位範囲も表示してみましょう。
. tabstat height weight, s(n mean sd min max p25 p50 p75)
stats | height weight
---------+--------------------
N | 20 20
mean | 170.525 60.99
sd | 13.22609 11.32231
min | 140.1 40.3
max | 199.2 88
p25 | 163.95 54.1
p50 | 170.5 59.85
p75 | 176.4 68.95
------------------------------
``p25`` は全体の下から 25% の部分にある数値で、``p50`` は順番が真ん中の数字、すなわち中央値(メディアン)になります。
もちろんオプション ``,s()`` の中身を変更することで、結果を表示する順番も好きなように変更することができます。小さいものから表示されるようにしましょう。
. tabstat height weight, s(n mean sd min p25 p50 p75 max)
stats | height weight
---------+--------------------
N | 20 20
mean | 170.525 60.99
sd | 13.22609 11.32231
min | 140.1 40.3
p25 | 163.95 54.1
p50 | 170.5 59.85
p75 | 176.4 68.95
max | 199.2 88
------------------------------
``p50`` は ``median`` と入力しても同じ結果が表示されます。