2016-11-12 3 views
0

Рассмотрите вымышленные данные, чтобы проиллюстрировать мою проблему, которая содержит в действительности тысячи строк.Создание идентификатора на основе коэффициента и заполнения Stata

Рисунок 1

enter image description here

Каждый человек характеризуется значениями, присоединенных к А, В, С, D, E. На рисунке 1 показаны 3 человека, для которых отсутствуют некоторые характеристики. Вы знаете, как я могу получить следующую заполненную таблицу (рисунок 2)?

Рисунок 2

enter image description here

С ID на рисунке 1, я мог бы использовать команду carryforward для заполнения значений. Но так как у каждого человека есть другое количество строк, я не знаю, как создать идентификатор.

Редактировать: Все индивидуальные делятся характеристикой «А».

Редактировать: существующий порядок наблюдений информативен.

+0

Спасибо @timat. Я думал о «заполнении», и я мог что-то пропустить. Но для 'fillin' вам нужно указать более одной переменной. Поэтому, если быть более точным, я не хочу создавать наблюдения с отсутствующими значениями для всех комбинаций символов и значений, я просто хочу добавить недостающие характеристики, чтобы получить 5 строк на идентификатор. – emeryville

+0

Я не вижу здесь точной спецификации того, что мы можем и не можем принять. Кажется, что существующий порядок наблюдений («строки» не является стандартным термином Stata) информативен, но здесь нет указателя на переменную идентификатора. –

+0

Спасибо, Ник за комментарий. Правильно, существующий порядок наблюдений носит информативный характер. Наивный вопрос: есть ли причина, почему Stata использует «наблюдение» вместо «строки»? Или почему не оба? – emeryville

ответ

2

Чтобы определить изменение идентификатора, идея заключается в сравнении, если значение прецедента char равно> = в каждой строке.

Это работает, только если ваши данные заказываются, но в ваших данных они кажутся обязательными.

gen id= 1 if (char[_n-1] >= char[_n]) | _n ==1 
replace id = sum(id) if id==1 
replace id = id[_n-1] if missing(id) 
fillin id char 
drop _fillin 

Если физическое лицо, как только характеристики А и С, а другого человека, как только характеристики D и Е, это не будет работать, но это, кажется, невозможно обнаружить с вашими данными.

+0

Спасибо @timat! Это очень хорошее и эффективное решение. Позвольте мне добавить, что он также хорошо работает для моей общей проблемы, поскольку все люди имеют, по меньшей мере, характер A. – emeryville

+1

См. Также часто задаваемые вопросы по управлению данными, например http://www.stata.com/support/faqs/data-management/groups -по-первых появление / –

Смежные вопросы