2

2つの変数を持つStataデータセットがあるとしましょう:typeprice。各type観測値は1から10までの数値です。

priceそのすべての変数の平均である3番目の値を追加したいと思いますtype。したがって、たとえば、最初の観測値のatypeが3でaが10の場合、 =3のすべての観測price値の平均である3番目の値を追加したいと思います。pricetype

Stataでこれを行うにはどうすればよいですか?

4

3 に答える 3

6

よりシンプルで効率的な別のアプローチを次に示します。大規模なデータセットがある場合、これは 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) 
于 2009-10-20T03:06:41.393 に答える
1

方法はいくつかあると思いますが、私が提案したいのはこれです。

gen newvar = .
forvalues i = 1/10 {

  qui sum price if type == `i', meanonly
  replace newvar = r(mean) if type == `i'

}

于 2009-10-10T21:30:54.170 に答える
1

で手段を作成できます

by type: egen conditional_mean = mean(price)
于 2011-03-25T01:48:18.100 に答える