Stata скопировать категориальную переменную

Можно ли скопировать помеченную категориальную переменную в одну строку или мне обычно приходится копировать метки как отдельный шаг?

В случае, если я смотрю, 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

0 ответов

Вы можете делать то, что вы хотите очень легко, используя менее известные 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() относится к различным функциям при использовании с generate а также egenВот почему вы не получите те же результаты.

Другие вопросы по тегам