Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: Count the number of changing string values
From
Nick Cox <[email protected]>
To
"[email protected]" <[email protected]>
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
[email protected]
On 14 June 2013 10:20, Ching Wong <[email protected]> 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/