doファイル中のコマンド区切りの変更
通常Stataは行頭から改行文字までを1つのコマンドとして認識している。しかしdoファイル中に限り改行文字ではなく;をコマンドの区切りとすることができる。たとえば
sysuse uslifeexp, clear gen diff = le_wm - le_bm label var diff "Difference" line le_wm year, yaxis(1 2) xaxis(1 2) || line le_bm year|| line diff year|| lfit diff year||,ylabel(0(5)20, axis(2) gmin angle(horizontal))ylabel(0 20(10)80, gmax angle(horizontal))ytitle("", axis(2))xlabel(1918, axis(2)) xtitle("", axis(2))ytitle("Life expectancy at birth (years)")title("White and black life expectancy")subtitle("USA, 1900-1999")note("Source: National Vital Statistics, Vol 50, No. 6" "(1918 dip caused by 1918 Influenza Pandemic)")legend(label(1 "White males") label(2 "Black males"))legend(col(1) pos(3))
のような冗長なコマンドがあったとして、コマンド区切りを変更すれば、
sysuse uslifeexp, clear gen diff = le_wm - le_bm label var diff "Difference" #delimit ; line le_wm year, yaxis(1 2) xaxis(1 2) || line le_bm year || line diff year || lfit diff year ||, ylabel(0(5)20, axis(2) gmin angle(horizontal)) ylabel(0 20(10)80, gmax angle(horizontal)) ytitle("", axis(2)) xlabel(1918, axis(2)) xtitle("", axis(2)) ytitle("Life expectancy at birth (years)") title("White and black life expectancy") subtitle("USA, 1900-1999") note("Source: National Vital Statistics, Vol 50, No. 6" "(1918 dip caused by 1918 Influenza Pandemic)") legend(label(1 "White males") label(2 "Black males")) legend(col(1) pos(3)); #delimit cr
のように見やすく書くことができる。#delimit ;でコマンド区切りを;にして#delimit crでコマンド区切りを改行文字に戻す。crはcarriage returnの略で改行のことだと思っとけばいい。
また、
#delimit ; sysuse uslifeexp, clear;gen diff = le_wm - le_bm;label var diff "Difference"; #delimit cr
のように1行に複数個のコマンドを書くこともできる。