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: RE: generating a variable?
From
"Sarah Edgington" <[email protected]>
To
<[email protected]>
Subject
RE: st: RE: generating a variable?
Date
Thu, 28 Jul 2011 15:00:50 -0700
.
Your code isn't producing errors as written, but it also isn't doing
anything like what you intend.
Stata is reading the first iteration of the first line as:
if 5112001==3 then total_4_year==total_4_year+1
Because variable names can't start with numbers Stata is evaluating whether
5112001==3. Since the number 5112001 is not equal to the number 3 Stata
doesn't even process the rest of the line. Thus you don't get an error
message telling you that the rest of the line doesn't make sense. On the
other hand, if you were to say "if 3==3 then x=1" you would get the error
"unrecognized command: then."
So the reason you're getting all zeros is that you set the values of your
totals to zero before the loop. Stata isn't actually doing anything to your
data in the loop because none of the if statements evaluate as true. If you
were to correct your code so that it used the actual variable name E5112001
you would get errors.
-Sarah
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Ignacio Martinez
Sent: Thursday, July 28, 2011 2:39 PM
To: [email protected]
Subject: Re: st: RE: generating a variable?
Hi Nick,
My code runs but does not work (i only get a vector of zeros).
http://goo.gl/27nG6
Any idea what is the right way of doing what i want?
Thanks!
-Ignacio
On Thu, Jul 28, 2011 at 3:23 PM, Nick Cox <[email protected]> wrote:
> I am very surprised that you imply that this even works at all. "then" is
just fantasy code so far as Stata is concerned. Alternatively, if this is a
mix of Stata and pseudocode, then please show us the real Stata code.
>
> See also
>
> FAQ . . . . . . . . . . . . . . . . . . . . . if command vs. if
> qualifier
> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . J.
> Wernow
> 6/00 I have an if or while command in my program that
> only seems to evaluate the first observation,
> what's going on?
> http://www.stata.com/support/faqs/lang/ifqualifier.html
>
> to learn that -if- as you (intend to) use it is not what you want.
>
> Nick
> [email protected]
>
> Ignacio Martinez
>
> I'm having troubles generating 2 new variables with my data.
>
> I have the following variables: ID; E01-E12 where E01 =3 indicates
> that i is enrolled in a 4 year college in January, and E05=2 means
> that he is enrolled in a 2 year college in may.
>
> I want to generate a 2 new variables Total_2_year that is the total
> number of month that i is enrolled in a 2 year college and
> total_4_year that is the total number of month that i is enrolled in a
> 4 year college.
>
> What is the best way of doing this?
>
> My first attempt was this
> <code>
> *Generates vectors of total months enrolled in college gen
> total_2_year = 0 gen total_4_year = 0 gen total_none = 0
>
>
> forvalues month=1/9 {
> if 511200`month'==3 then total_4_year==total_4_year+1
> if 511200`month'==2 then total_2_year==total_2_year+1
> if 511200`month'==1 then total_none==total_none+1
> if 511200`month'==-4 then total_none==-4
> if 511200`month'==-4 then total_2_year==-4
> if 511200`month'==-4 then total_4_year==-4
> }
>
> </code>
>
> but i get only zeros... :_(
>
>
> *
> * For searches and help try:
> * http://www.stata.com/help.cgi?search
> * http://www.stata.com/support/statalist/faq
> * http://www.ats.ucla.edu/stat/stata/
>
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/