今日は変数ラベルと値ラベルに関してまとめていきます.基本コマンドである .labelを使いこなすこと、そしてその拡張版である.elabelを必要に応じて使えるようにマスターすることがポイントとなります.
今回は”label”コマンドの使い方を説明します.
このコマンドはいくつかのサブコマンドがあり、それと組み合わせてはじめて意味を成しますので、熟語みたいなもんですね.make sense?
サブコマンド | 目的 | syntax |
data | データセットに名前をつける | label data “name” |
variable | 変数にラベルをつける | label variable varname “name” |
define | 値ラベルの定義 | label define lblname # “label” # “label” …. |
values | 値ラベルをつける | label values varlist lblname |
dir | 値ラベルの種類を列挙する | label dir |
list | 値ラベルの種類と選択肢を列挙する | label list [lblname] |
copy | 値ラベルのコピー・置き換え | label copy lblname lblname [, replace] |
drop | 値ラベル削除 | label drop lblname あるいは label drop _all |
save | 値ラベルのdo-file保存 | label save [lblname] using filename [, replace] |
データセットのラベル付けは個人的にそれほど役立つ場面がない気がしますが、変数ラベルと値ラベルについてはマスターしておくとよいでしょう.
ちなみにこれらのラベルは、グラフを描くときにも、先日ご紹介したtable1_mcを使うときにもそのまま表示されます.なのでできるだけ始めに定義しておくと楽です.
次にオプションです.ここでは”add”, “modify”, “replace”, “nofix”の4つあります.値ラベルの変数を追加するときには同じsyntaxを書いた後に、addオプションを追加します.
値ラベルの要素を変更をしたい場合にも同じsyntaxを書いた後に、modifyオプションを追加します.
変数ラベルを入れ替えたりするときにはreplaceを使いましょう.
ここで、試しにサンプルデータで具体的なコマンドを見ていきましょう.
sysuse auto, clear
gen highprice = 1 if price>=10000
replace highprice = 0 if price<10000
label define expensive 0 "Cheap" 1 "Expensive"
/// expensiveという名前の値ラベルを作成する.このとき、値が0のときはNot expensive、1のときはExpensiveとつけます
label values highprice expensive
/// highpriceという変数に上記で定義した値ラベル"expensive"をつなぎます
いやいや、cheapはないか、と思って、not expensiveに変更しようと思ったら、
label define expensive 0 "Not expensive" 1 "Expensive", modify
tab highprice
このようにすれば新たな表示となります.
ちなみに、Table 1を作るのにsbpという収縮期血圧を表す変数に単位付きのラベルを作りたい場合は、
label variable sbp "Systolic Blood Pressure, mmHg"
これで同様に拡張期血圧も設定して散布図を描いてみましょう.
eGFRの単位やBMIの単位は平方メートルがついてきます. それをml/min/1.73m{sup:2}、kg/m{sup:2}とラベルで定義しておけばよく、
上付きなら{sup:2}、下付なら{sub:2}とやればよいわけです.
しかし、これらのコマンドは変数を一つずつしか設定できなかったり、wildcardを含めることができません.そこで、これらの不便さを解消させるためのコマンド”.elabel”を次回の記事で紹介させていただきます.
コメント