Fra*_*ank 2 copy stata categorical-data
是否可以在一行中复制带标签的类别变量,还是通常需要在标签上复制作为单独的步骤?
在我正在研究的情况下,egen ... group()它接近但更改了基础整数:
sysuse auto
** starts them from different indices
egen mycut = cut(mpg), at(0 20 30 50) label icodes
egen mycut_copy = group(mycut), label
** does weird stuff
egen mycut2 = cut(mpg), at(0 20 30 50) label icodes
replace mycut2 = group(mycut2)
egen mycut_copy2 = group(mycut2), label
** the correct approach?
gen mycut3 = cut(mpg), at(0 20 30 50) label icodes
gen mycut_copy3 = mycut3
label values mycut_copy3 mycut3
Run Code Online (Sandbox Code Playgroud)
您可以使用鲜为人知的clonevar命令轻松完成所需的操作:
sysuse auto, clear
egen mycut = cut(mpg), at(0 20 30 50) label icodes
clonevar mycut2 = mycut
list mycut* in 1/10, separator(0)
+----------------+
| mycut mycut2 |
|----------------|
1. | 20- 20- |
2. | 0- 0- |
3. | 20- 20- |
4. | 20- 20- |
5. | 0- 0- |
6. | 0- 0- |
7. | 20- 20- |
8. | 20- 20- |
9. | 0- 0- |
10. | 0- 0- |
+----------------+
Run Code Online (Sandbox Code Playgroud)
请注意,group()当与generate和一起使用时egen,它指的是不同的函数,这就是为什么您无法获得相同结果的原因。