【问题标题】:Create sorting group ID without sorting the group创建排序组 ID 而不对组进行排序
【发布时间】:2018-07-04 16:07:13
【问题描述】:

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

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

我想创建id_group,因为在下一步中,我想将var1 折叠为group,而不会丢失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

【问题讨论】:

    标签: string sorting stata collapse


    【解决方案1】:
    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 |
         +--------------------------------------------+
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-06
      • 1970-01-01
      • 1970-01-01
      • 2013-12-19
      • 1970-01-01
      • 2021-04-13
      • 2018-08-02
      相关资源
      最近更新 更多