Получить количество уровней категориальной переменной как одно число в Stata

Я пытаюсь найти способ получить количество уровней категориальной переменной в виде одного числа. Например, если у меня есть переменная X с 4 уровнями мне нужно как-то получить это число. Если я наберу levelsof X Я получаю следующее 1 2 3 4 но я не могу получить только номер 4 оттуда. Есть ли способ сделать это с помощью levelsof или другая команда?

2 ответа

Решение

Различные команды предоставят вам количество различных значений для любой переменной. ("Категориальная переменная" является статистической концепцией, а не концепцией Stata.) Возможно, самый простой способ сделать это для одноразовых целей - это запросить одностороннюю таблицу с использованием tabulate, Число различных значений - это количество строк в этой таблице, возвращаемое как r(r), Обратите внимание, что (1) вы можете подавить саму таблицу (которая полезна в программе или файле дел) и (2) пропущенные значения исключены по умолчанию:

. sysuse auto, clear
(1978 Automobile Data)

. qui tab foreign

. ret li

scalars:
                  r(N) =  74
                  r(r) =  2

. qui tab rep78

. ret li

scalars:
                  r(N) =  69
                  r(r) =  5

. qui tab rep78, missing

. ret li

scalars:
                  r(N) =  74
                  r(r) =  6

Подробный обзор этой проблемы, представленный более широко, доступен здесь. Эта статья представляет distinct команда. Его использование включает в себя прямую поддержку систематического просмотра количества различных значений. search distinct в Stata, чтобы найти источник загрузки для самой последней версии.

. distinct

              |           Observations
              |         total      distinct
--------------+----------------------------
         make |            74            74
        price |            74            74
          mpg |            74            21
        rep78 |            69             5
     headroom |            74             8
        trunk |            74            18
       weight |            74            64
       length |            74            47
         turn |            74            18
 displacement |            74            31
   gear_ratio |            74            36
      foreign |            74             2

Вы можете посмотреть на r(r) после levelsof:

. sysuse auto
(1978 Automobile Data)

. levelsof rep78
1 2 3 4 5

. display "rep78 has " `r(r)' " levels."
rep78 has 5 levels.
Другие вопросы по тегам