String 创建排序组ID而不对组进行排序
我想创建一个排序组ID,而不对组进行排序String 创建排序组ID而不对组进行排序,string,sorting,stata,collapse,String,Sorting,Stata,Collapse,我想创建一个排序组ID,而不对组进行排序 var1是我感兴趣的变量,包含一些随机值id\u 1是一个基于var1的唯一id组包含有关相应的var1观察所属组的信息。请注意,组中的字符串不包含任何排序信息,这意味着按字母顺序排序没有值 我想创建id\u组,因为在下一步中,我想通过group折叠var1,而不会丢失组的排序。如果我只是按(组)折叠(max)var1,Stata将按字母顺序对结果进行排序,我不希望这样。我想创建id\u组然后通过(id\u组)折叠(max)var1并维护组的顺序 我曾尝
var1
是我感兴趣的变量,包含一些随机值id\u 1
是一个基于var1
的唯一id<代码>组包含有关相应的var1
观察所属组的信息。请注意,组
中的字符串不包含任何排序信息,这意味着按字母顺序排序没有值
我想创建id\u组
,因为在下一步中,我想通过group
折叠var1
,而不会丢失组
的排序。如果我只是按(组)折叠(max)var1,Stata将按字母顺序对结果进行排序,我不希望这样。我想创建id\u组
然后通过(id\u组)折叠(max)var1并维护组的顺序
我曾尝试使用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 |
+--------------------------------------------+