使用其值标签复制分类变量

时间:2014-09-23 15:38:02

标签: 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

1 个答案:

答案 0 :(得分:5)

您可以使用鲜为人知的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- |
     +----------------+

请注意,group()generateegen一起使用时指的是不同的函数,这就是为什么您无法获得相同结果的原因。