If -time- is never missing, then 
bysort id (time) : gen v2 = time[_N] != 999 
gets you there in one. 
-gen byte v2- is a refinement on that. 
Nick
[email protected] 
Zhiqiang Wang
Let's assume your variables are 1) time = 0, 2, 4, 8,...52, 999 and 2)
patient identification - id. 
There may be several alternatives. The following is one of them.  
. egen v1 = max(time), by(id)
. gen v2 = v1 != 999
Ziad El-Khatib
I have cohort followed over 12 months. Time points have 2 variables:
   visit: coded after the number of weeks on treatmnet:
0,2,4,8,12,16,20,24,36 & 52 (patients expected to come on these weeks)
otherwise coded 999 if unexpected visit.
   week: showing the exact week number patient came to clinic.
I am trying to generate variable with value=1 to select patients who
came at all visits (mentioned above), with intention to identify
patients who did not come to the expected appointments.
*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/