В Stata у меня есть данные о людях, которые вместе работали над проектом. Каждая строка представляет собой проект, и есть столбцы от человека_1 до человека_20, и если в этом столбце есть имя, это означает, что человек работал над этим проектом в строке. Группа может быть 1 человек, 2 человека, ..., 20 человек. У меня есть двоичная переменная (да = 1) для каждой возможности: Группа 1 (G1), G2, ..., G11. Затем я использовал этот код для создания групп (на примере группы из 4 человек):
project_group = person_1 + "/" + person_2 + "/" + person_3 + "/" + person_4 if G4 == 1
This yields: Tom/Joe/Mike/Sally
У меня три вопроса: 1) Есть ли более эффективный способ группировки. Например, код, который просто просматривает проект (строку), подсчитывает, сколько в нем людей (сколько непустых полей), а затем создает уникальное имя группы, которое представляет собой имя каждого человека, разделенное знаком «/». Я в порядке с кодом, который я создал, но мой набор данных изменится в размере, и, вероятно, лучше использовать более эффективный код.
2) Как я могу рассматривать, исходя из моего примера, Джо/Тома/Майка/Салли или Салли/Джо/Майка/Тайма как одну и ту же группу. Я бы предпочел, чтобы все группы, независимо от размера, перечисляли каждого человека в алфавитном порядке. В моем примере список будет Джо/Майк/Салли/Том независимо от фактической перестановки.
3) Как сделать группу уникальной на основе первого человека (если это руководитель проекта, то он указан первым). Итак, Джо/Том/Майк и Джо/Майк/Том — это одна и та же группа, а Том/Джо/Майк и Майк/Том/Джо — нет.
Спасибо за помощь и предложения