Подсчитайте, сколько раз уникальное значение появляется во всех столбцах и строках набора данных?

#count #stata #unique-values

Вопрос:

У меня есть уникальные идентификаторы в строках, где столбцы-это ID имена их «отправленных» друзей. Чтобы получить количество «принятых» друзей, мне нужно подсчитать, сколько раз идентификатор появляется во всех столбцах и строках набора данных. Это легко в R, но я хотел бы остаться в Stata для этого проекта.

ID F1_ID F2_ID F3_ID Идентификаторы
1 2 3 4 4
2 4 1 4
3 1 2 3
4 2 1 3 3

Данные об игрушках приведены выше. Здесь есть четыре упоминания ID #1 , три упоминания ID #4 и т. Д.

Я хочу сгенерировать переменную, содержащую количество раз, когда каждое ID значение в первом столбце упоминается в любом столбце набора данных. Это проиллюстрировано в ID_mentions колонке.

Ответ №1:

Оказывается, я кое-что написал на этой территории. Вам нужно будет установить это с помощью ssc install tab_chi

 * Example generated by -dataex-. For more info, type help dataex
clear
input byte(id f1_id f2_id f3_id)
1 2 3 4
2 4 1 .
3 1 2 .
4 2 1 3
end

tabm *id

           |                   values
  variable |         1          2          3          4 |     Total
----------- -------------------------------------------- ----------
        ID |         1          1          1          1 |         4 
     F1_ID |         1          2          0          1 |         4 
     F2_ID |         2          1          1          0 |         4 
     F3_ID |         0          0          1          1 |         2 
----------- -------------------------------------------- ----------
     Total |         4          4          3          3 |        14 
 

ОТРЕДАКТИРУЙТЕ, Чтобы подсчитать все упоминания:

 gen mentions = . 

quietly forval i = 1/`=_N' { 
    egen work = anycount(*id), value(`=id[`i']')
    su work, meanonly 
    replace mentions = r(sum) in `i'
    drop work 
}

list 
 

Комментарии:

1. Спасибо, Ник, этот пакет и файлы справки являются информативными. Знаете ли вы, как извлечь количество в качестве значений переменных? Например, где значение строки столбца новой переменной-это количество раз, когда в наборе данных упоминается значение строки первого столбца «ИДЕНТИФИКАТОР»?

2. Смотрите справку по tabm : вы можете replace сохранить набор данных в памяти. В противном случае см. egen Различные any функции для подсчета между переменными.

3. Еще раз спасибо, Ник. Я запросил эти файлы и все еще не могу найти ответ. В результате я решил переехать в R.

4. Я действительно не понимаю, какую новую переменную вы хотите. Должен ли он быть выровнен с исходными данными или в новом наборе данных. Описание «новая переменная» слишком расплывчато, чтобы я мог догадаться. Можете ли вы дополнить свой вопрос конкретным примером?

5. Привет, Ник. Я отредактировал исходное сообщение, чтобы добавить четвертую колонку, иллюстрирующую то, что я ищу. Спасибо!