egen group()可以产生实际值而不是1,2,3,.....?

时间:2018-02-20 04:16:52

标签: stata

参考https://www.stata.com/support/faqs/data-management/creating-group-identifiers/

  

要从现有变量oldid创建新变量newid,   无论oldid是字符串还是数字,请键入

    . egen newid = group(oldid) 
     

新变量newid将包含1作为oldid的第一个值,2作为第二个值,等等   上。

group()命令可以生成分组变量的实际值而不是1,2,3 ....例如,在以下数据集中,

clear
input units price   sku week    store   subc
35  4.3 1   1   1   1
23  3   2   1   1   1
12  2.5 3   1   1   2
10  1   4   1   1   2
35  12  5   1   1   2
35  12  6   1   1   3
35  5.3 1   2   1   1
23  4   2   2   1   1
12  3.5 3   2   1   2
10  2   4   2   1   2
35  13  5   2   1   2
35  13  6   2   1   3
end

我们如何修改命令egen long joint = group(subc sku),使joint的实际值为:

clear
input units price   sku week    store   subc joint
35  4.3 1   1   1   1 1_1
23  3   2   1   1   1 1_2
12  2.5 3   1   1   2 2_3
10  1   4   1   1   2 2_4
35  12  5   1   1   2 2_5
35  12  6   1   1   3
35  5.3 1   2   1   1
23  4   2   2   1   1
12  3.5 3   2   1   2
10  2   4   2   1   2
35  13  5   2   1   2
35  13  6   2   1   3
end

或者一般而言,如何确保Stata不会修改group()命令的结果?

变量subcsku的连接不是一个选项,因为它没有在forval循环中为我提供所需的结果。

1 个答案:

答案 0 :(得分:0)

group()egen函数,而不是命令。

连接可以准确地为您指定。这有什么问题?

clear
input units price   sku week    store   subc
35  4.3 1   1   1   1
23  3   2   1   1   1
12  2.5 3   1   1   2
10  1   4   1   1   2
35  12  5   1   1   2
35  12  6   1   1   3
35  5.3 1   2   1   1
23  4   2   2   1   1
12  3.5 3   2   1   2
10  2   4   2   1   2
35  13  5   2   1   2
35  13  6   2   1   3
end

egen joint = concat(subc sku), p(_) 

list , sepby(subc)

     +---------------------------------------------------+
     | units   price   sku   week   store   subc   joint |
     |---------------------------------------------------|
  1. |    35     4.3     1      1       1      1     1_1 |
  2. |    23       3     2      1       1      1     1_2 |
     |---------------------------------------------------|
  3. |    12     2.5     3      1       1      2     2_3 |
  4. |    10       1     4      1       1      2     2_4 |
  5. |    35      12     5      1       1      2     2_5 |
     |---------------------------------------------------|
  6. |    35      12     6      1       1      3     3_6 |
     |---------------------------------------------------|
  7. |    35     5.3     1      2       1      1     1_1 |
  8. |    23       4     2      2       1      1     1_2 |
     |---------------------------------------------------|
  9. |    12     3.5     3      2       1      2     2_3 |
 10. |    10       2     4      2       1      2     2_4 |
 11. |    35      13     5      2       1      2     2_5 |
     |---------------------------------------------------|
 12. |    35      13     6      2       1      3     3_6 |
     +---------------------------------------------------+