2014-02-05 2 views
-1
nparasit numserial ndate_added 
    .  42231  05-Jun-00 
    7992 42231  03-Jun-00 
    .  422420  4-Jun-00 
    144000 42242  05-Jun-00 
    712800 42242  04-Jun-00 
    NEG  42242  08-Jun-00 
    371200 42242  06-Jun-00 
    10138 42242  07-Jun-00 
    .  110224  21-Dec-11 
    0  110224  12-Dec-11 

Я использую Stata 12 на Windows 7. У меня есть набор данных с дублированными numserials. Я хочу выбрать первый nparasit со значением в соответствии с Дата добавления (ndate_added). Я пробовал использовать bysort, но без успех. Как я могу это сделатьВыберите первую запись со значением

+2

Это перекрестная проводка, не объясняя это. См. Http://www.stata.com/statalist/archive/2014-02/msg00176.html и следующие ответы. Я полагаю, что плохая практика не рассказывать людям о предложениях, полученных в другом месте. –

ответ

1
// prepare some example data 
clear 
input /// 
nparasit numserial str9 ndate_added 
    .  42231  02-Jun-00 
    7992 42231  03-Jun-00 
    .  422420  04-Jun-00 
    144000 42242  05-Jun-00 
    712800 42242  04-Jun-00 
    .  42242  08-Jun-00 
    371200 42242  06-Jun-00 
    10138 42242  07-Jun-00 
    .  110224  21-Dec-11 
    0  110224  12-Dec-11 
end 

gen date = date(ndate_added, "DM20Y") 
format date %td 

// mark first non-missing value on nparasit 
gen byte miss = missing(nparasit) 
bysort miss numserial (date) : /// 
    gen byte mark = (_n == 1) & (miss == 0) 

// admire the result 
sort numserial date 
list, sepby(numserial) 
Смежные вопросы