Labelの設定①

プログラミング

今日は変数ラベルと値ラベルに関してまとめていきます.基本コマンドである .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"

これで同様に拡張期血圧も設定して散布図を描いてみましょう.

.twoway scatter sbp dbp
としたときに勝手に軸タイトルが変数ラベルになります.

eGFRの単位やBMIの単位は平方メートルがついてきます. それをml/min/1.73m{sup:2}、kg/m{sup:2}とラベルで定義しておけばよく、

上付きなら{sup:2}、下付なら{sub:2}とやればよいわけです.

しかし、これらのコマンドは変数を一つずつしか設定できなかったり、wildcardを含めることができません.そこで、これらの不便さを解消させるためのコマンド”.elabel”を次回の記事で紹介させていただきます.

コメント

タイトルとURLをコピーしました