4

対応のある t 検定を多数実行する必要があり、全体的な手順を自動化する方法を考えていました。次の変数しかないとします。

int_ma    est_ma    tot_ma    int_pa    est_pa    tot_pa   

私が必要とするのは計算することです:

ttest int_ma=int_pa
ttest est_ma=est_pa
ttest tot_ma=tot_pa

もちろん、各ペアに一意のプレフィックスと「_pa、_ma」サフィックスがあるという事実を何らかの方法で利用できるはずですが、残念ながら、各変数名の一部のみを参照する簡単な方法を見つけることができません..

助けてくれてありがとう!

4

1 に答える 1

4

これを行うにはいくつかの方法があります。foreach一般的なリストでループを使用します。ここで、Stata がローカル マクロとしてループに渡す 3 つのプレフィックスをループし、変数と変数に_maand_paを追加します。generatettest

* generate some data
clear
set obs 100 
foreach x in int est tot {
    foreach y in ma pa {
        generate `x'_`y' = runiform()
    }
}

* -ttest- in -foreach- loop
foreach x in int est tot {
    ttest `x'_pa = `x'_ma
}

foreachヘルプ ファイルは、ヘルプ ファイルと同様に、数回読む価値がありますmacro。構文は最初は少し奇妙ですが (R や Matlab よりも bash スクリプトに似ています)、非常に柔軟です。

于 2012-12-20T09:50:12.720 に答える