Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Nick Cox <njcoxstata@gmail.com> |
To | "statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu> |
Subject | Re: st: Count the number of changing string values |
Date | Fri, 14 Jun 2013 10:49:50 +0100 |
Code that "doesn't work" but is not shown can not be commented on. Long structure (I prefer to avoid the word "format" here) is not essential for the problem as I understand it, but it is likely to be better for you for most analyses. The year in which people first said "No" is gen year = . qui forval j = 1999/2012 { replace year = `j' if Drug`j' == "No" & missing(year) } tab year So, 1. Everybody starts out with missing. 2. If they said "No" in 1999, -year- is changed to 1999 3. If they said "No" in 2000, -year- is changed to 2000, but only if -year- is missing (so values of 1999 are protected) and so on. You didn't explain your datatypes. If -drug*- are numeric variables with value labels, the syntax will differ accordingly. Nick njcoxstata@gmail.com On 14 June 2013 10:20, Ching Wong <ching.y.wong@student.adelaide.edu.au> wrote: > I have the following data set: > > Id sex drug1999 drug2000 drug2001 drug 2001 > > 1 F Yes No Yes Unknown > > 3 M No Yes Yes No > > 5 F Yes Yes Yes Yes > > 9 M Unknown Yes No Yes > > 10 F Yes No Yes No > > I would like to produce a count of to show the number of people who > quit each year, only count the first time they quit and do not care if > they change their status to ‘No’ again. > > What would be the command? I tried to change it to the long formal and > use the lag function, but it doesn’t work. * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/faqs/resources/statalist-faq/ * http://www.ats.ucla.edu/stat/stata/