秘訣は、Stataにループ内の値をループするように要求する前に、varlist拡張を使用ds
または作成することです。 unab
foreach
それぞれの例を次に示します。
******************! BEGIN EXAMPLE
** THIS FIRST SECTION SIMPLY CREATES SOME FAKE DATA & INDOOR VARS **
clear
set obs 10000
local suffix `c(ALPHA)'
token `"`suffix'"'
while "`1'" != "" {
g indoor`1'`2'`3' = 1+int((5-1+1)*runiform())
lab var indoor`1'`2'`3' "Indoor Values for `1'`2'`3'"
mac shift 1
}
g group = rbinomial(1,.5)
lab var group "GROUP TYPE"
** NOW, YOU SHOULD HAVE A BUNCH OF FAKE INDOOR
**VARS WITH ALPHA, NOT NUMERIC SUFFIXES
desc indoor*
**ループds
のVARLISTを作成するために使用しforeach
ます:
ds indoor*
di "`r(varlist)'"
local indoorvars `r(varlist)'
local n 0
foreach i of local indoorvars {
**いくつかのヘッダーを介してテーブルを少し整理しましょうdisplay
local ++n
di in red "--------------------------------------------"
di in red "Table `n': `:var l `i'' by `:var l group'"
di in red "--------------------------------------------"
**あなたtab
のテーブル
tab `i' group, col freq chi2 exact nolog nokey
}
******************! END EXAMPLE
またはunab
代わりに使用:
******************! BEGIN EXAMPLE
unab indoorvars: indoor*
di "`indoorvars'"
local n 0
foreach i of local indoorvars {
local ++n
di in red "--------------------------------------------"
di in red "Table `n': `:var l `i'' by `:var l group'"
di in red "--------------------------------------------"
tab `i' group, col freq chi2 nokey //I turned off exact to speed things up
}
******************! END EXAMPLE
ds
変数ラベルの情報やその他の特性に基づいて屋内変数を選択するなど、トリッキーな選択ルールを使用して屋内変数を選択する場合に、の利点が役立ちます。