1

次のデータセット (個人レベルのデータ) があります。

pid  year state income
1    2000  il    100
2    2000  ms    200
3    2000  al     30
4    2000  dc    400
5    2000  ri    205
1    2001  il    120
2    2001  ms    230
3    2001  al     50
4    2001  dc    400
5    2001  ri    235
.........etc.......

各州の毎年の平均収入を見積もる必要があり、and次のような新しいデータセットを作成します。

state   year   average_income
ar      2000      150
ar      2001      200
ar      2002      250
il      2000      150
il      2001      160
il      2002      160
...........etc...............

完全に正常に動作するコードが既にあります (2 つのループがあります)。ただし、SQL スタイルのクエリのような Stata でより良い方法があるか知りたいですか?

4

3 に答える 3

11

これは、これまでに提案されたコードよりも短いコードです。

  collapse average_income=income, by(state year) 
于 2013-08-06T01:41:37.467 に答える
1

質問に SQL タグがあります。これは、SQL の基本的な集計クエリです。

select state, year, avg(income) as average_income
from t
group by state, year;

これをテーブルに入れるには、データベースによって異なります。通常、次のいずれかが機能します。

create table NewTable as
    select state, year, avg(income) as average_income
    from t
    group by state, year;

または:

select state, year, avg(income) as average_income
into NewTable
from t
group by state, year;
于 2013-08-06T00:06:37.113 に答える