创建排序组ID而不对组进行排序

Create sorting group ID without sorting the group

我想创建一个排序组 ID 而不对组进行排序。

var1 是我感兴趣的变量,包含一些随机值。 id_1是基于var1的_n的唯一ID。 group 包含有关相应 var1 观察所属组的信息。请注意,group 中的字符串不包含任何排序信息,这意味着按字母顺序排序没有任何价值。

我想创建 id_group,因为在下一步中,我想通过 group 折叠 var1 而不会丢失 group 的排序。如果我只是 collapse(max) var1, by(group),Stata 将按 group 字母顺序对结果进行排序——这是我不想要的。我想创建 id_group 然后 collapse(max) var1, by(id_group) 并保持组的顺序。

我曾尝试使用 bysort,但此命令按字母顺序 group 排序以创建新 ID。 egen 也不起作用,因为创建的 ID 未按排序顺序排列。

clear
input   var1  id_var1 str6 group id_group
    3       1       "C"    1
    1       2       "C"    1
    9       3       "C"    1
    5       4       "A"    2
    3       5       "B"    3
    0       6       "F"    4
    9       7       "Z"    5 
    1       8       "Y"    6
    3       9       "T"    7
    2       10      "T"    7
end
clear
input   var1  id_var1 str6 group id_group
    3       1       "C"    1
    1       2       "C"    1
    9       3       "C"    1
    5       4       "A"    2
    3       5       "B"    3
    0       6       "F"    4
    9       7       "Z"    5 
    1       8       "Y"    6
    3       9       "T"    7
    2       10      "T"    7
end

gen wanted = sum(group != group[_n-1]) 

list , sepby(wanted) 

     +--------------------------------------------+
     | var1   id_var1   group   id_group   wanted |
     |--------------------------------------------|
  1. |    3         1       C          1        1 |
  2. |    1         2       C          1        1 |
  3. |    9         3       C          1        1 |
     |--------------------------------------------|
  4. |    5         4       A          2        2 |
     |--------------------------------------------|
  5. |    3         5       B          3        3 |
     |--------------------------------------------|
  6. |    0         6       F          4        4 |
     |--------------------------------------------|
  7. |    9         7       Z          5        5 |
     |--------------------------------------------|
  8. |    1         8       Y          6        6 |
     |--------------------------------------------|
  9. |    3         9       T          7        7 |
 10. |    2        10       T          7        7 |
     +--------------------------------------------+