2015-05-28 3 views
-1

У меня есть две переменные: идентификатор пациента и дата. Многие пациенты в моей базе данных дублируются. Я хочу сохранить дублирование, но применим к каждому пациенту самую раннюю дату появления.Заменить петлю в Stata

Ex:

ID Date 
1  8/9/07 
1  6/3/07 
1  11/15/08 
2  8/6/06 
2  8/6/06 
2  11/5/09 

станет

ID Date 
1  6/3/07 
1  6/3/07 
1  6/3/07 
2  8/6/06 
2  8/6/06 
2  8/6/06 
+1

Вы, кажется, занижены, потому что здесь нет попытки кода, и проблема и ее решение хорошо документированы. Я советую против призывов к безотлагательности в подобных форумах. Ваша срочность не наша, и вы на самом деле не подразумеваете, что другие вопросы должны иметь более низкий приоритет. –

+0

О, извините. Я не хотел ничего подразумевать и никого не обидеть. Я искал 4-5 часов для ответа на мой вопрос. Я предполагаю, что теперь я подразумеваю, что я должен научиться искать вопросы о статах ... Я просмотрел рекомендованный вами сайт, но в следующий раз я посмотрю больше. Сожалею. – JM7

+1

Все советы предназначены в ваших лучших (долгосрочных) интересах. 'search first date' в Stata указывает на часто задаваемые вопросы. С другой стороны 'поиск ранней даты' не делает. Если вы примете мой ответ, вы получите репутацию. –

ответ

1

Первая дата является только минимальный срок. Сортировка дат в каждом пациенте, а первая дата и наименьшая дата - одно и то же, так как дата является числовой.

bysort id (date) : gen firstdate = date[1] 

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

Подробнее о подписи и использовании by:.

Для одного учебника см. here.

Для получения дополнительной информации обращайтесь непосредственно к вашему вопросу, см. here.

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