Stata的。如果值是随机的,如何使用标签创建唯一标识符?

时间:2013-06-03 02:14:26

标签: label uniqueidentifier stata

我有一个庞大的面板数据集(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年,标签AL的值为10,但在2003年,标签AL的值为20

如何创建唯一标识符,例如新变量stateID,无论年份如何,所有AL标签都会采用整数值? egen stateID = group(state)无济于事。还有其他办法吗?

2 个答案:

答案 0 :(得分:5)

这要求调查它是如何发生的以及数据是否可以信任。但就Stata技术而言,首先是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 |
      +--------------------------+

答案 1 :(得分:-1)

试试这个:

egen stateID = group(state), label