1

私は巨大なパネル データ セット (1950-2012) を持っています。

state   year    income
    AL  2000    100
    AK  2001    200
    AZ  2002    150
    ...
    AL  2003    120
    AK  2004    10
    AZ  2005    150
    ...

問題は、変数stateが異なる年に異なる値を取る可能性があることです (ただし、ラベルは変更されません!)。たとえば、2001 年のラベルの値は ですAL10、2003 年のラベルの値ALは です20

年に関係なくすべてのラベルstateIDに対して整数値を取る新しい変数など、一意の識別子を作成するにはどうすればよいですか? 助けにならない。他に方法はありますか?ALegen stateID = group(state)

4

2 に答える 2

5

そのため、それがどのように発生したか、およびデータが信頼できるかどうかを調査する必要があります。しかし、スタタのテクニックに関しては、最初decodeに 、次にencodeもう一度。デモンストレーション:

. set obs 3
obs was 0, now 3

. gen numid = _n

. label define numid 1 "AL" 2 "AL" 3 "AL"

. label values numid numid

. list

     +-------+
     | numid |
     |-------|
  1. |    AL |
  2. |    AL |
  3. |    AL |
     +-------+

. decode numid, gen(strid)

. list

    +---------------+
    | numid   strid |
    |---------------|
 1. |    AL      AL |
 2. |    AL      AL |
 3. |    AL      AL |
    +---------------+

 . encode strid, gen(newnumid)

 . list

      +--------------------------+
      | numid   strid   newnumid |
      |--------------------------|
   1. |    AL      AL         AL |
   2. |    AL      AL         AL |
   3. |    AL      AL         AL |
     +--------------------------+

    . list, nolabels

      +--------------------------+
      | numid   strid   newnumid |
      |--------------------------|
   1. |     1      AL          1 |
   2. |     2      AL          1 |
   3. |     3      AL          1 |
      +--------------------------+
于 2013-06-03T06:34:25.650 に答える
-1

これを試して:

egen stateID = group(state), label
于 2013-06-03T03:23:19.937 に答える