2つの変数を持つStataデータセットがあるとしましょう:type
とprice
。各type
観測値は1から10までの数値です。
price
そのすべての変数の平均である3番目の値を追加したいと思いますtype
。したがって、たとえば、最初の観測値のatype
が3でaが10の場合、 =3のすべての観測price
値の平均である3番目の値を追加したいと思います。price
type
Stataでこれを行うにはどうすればよいですか?
2つの変数を持つStataデータセットがあるとしましょう:type
とprice
。各type
観測値は1から10までの数値です。
price
そのすべての変数の平均である3番目の値を追加したいと思いますtype
。したがって、たとえば、最初の観測値のatype
が3でaが10の場合、 =3のすべての観測price
値の平均である3番目の値を追加したいと思います。price
type
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
price
2)によって平均を生成します。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)