2つの変数を持つStataデータセットがあるとしましょう:typeとprice。各type観測値は1から10までの数値です。
priceそのすべての変数の平均である3番目の値を追加したいと思いますtype。したがって、たとえば、最初の観測値のatypeが3でaが10の場合、 =3のすべての観測price値の平均である3番目の値を追加したいと思います。pricetype
Stataでこれを行うにはどうすればよいですか?
2つの変数を持つStataデータセットがあるとしましょう:typeとprice。各type観測値は1から10までの数値です。
priceそのすべての変数の平均である3番目の値を追加したいと思いますtype。したがって、たとえば、最初の観測値のatypeが3でaが10の場合、 =3のすべての観測price値の平均である3番目の値を追加したいと思います。pricetype
Stataでこれを行うにはどうすればよいですか?
よりシンプルで効率的な別のアプローチを次に示します。大規模なデータセットがある場合、これは aTron が提案する多段階ループよりも高速になり、このアプローチは「タイプ」変数の範囲の変更に適応します (データセットのサイズが変更された場合、コードに戻り、コマンドの範囲を変更しますforvalues)。
1) 偽のデータセットを作成する
clear
input type price
1 1000
2 3200
3 5000
4 1200
5 1000
1 4000
2 2000
3 4000
4 1200
5 2000
end
price2)によって平均を生成します。type
bysort type: egen meanprice = mean(price)
li type price meanprice, sepby(type)
方法はいくつかあると思いますが、私が提案したいのはこれです。
gen newvar = .
forvalues i = 1/10 {
qui sum price if type == `i', meanonly
replace newvar = r(mean) if type == `i'
}
で手段を作成できます
by type: egen conditional_mean = mean(price)