My turn to apologise to Justin. I misread "resent", which
meant "re-sent", as "resent", meaning "object to". Sorry.
Nick
[email protected]
Nick Cox
> I didn't see your second message before I sent my
> first.
>
> However, I do suggest, as politely but also as firmly
> as I can, that the implication that it is unacceptable
> for posters to correct the code of others is totally
> absurd as a suggestion for a technical list.
>
> Nick
> [email protected]
>
> White, Justin
>
> > I realized I missed putting the 1 and 0 in quotes and
> resent an email
> > correcting my code. When I realized I also missed the use of "in"
> > rather than "of" I again resent my code with the necessary
> > corrections.
> > Sorry for all the emails.
> >
> >
> > Justin White
> >
> > -----Original Message-----
> > From: [email protected]
> > [mailto:[email protected]] On Behalf Of Nick Cox
> > Sent: Friday, October 27, 2006 10:29 AM
> > To: [email protected]
> > Subject: st: RE: RE: foreach
> >
> > The first problem here with Marilyn's code
> > is that the keyword "in" is not what she needs.
> >
> > "in" is legal here but what follows will not
> > be interpreted as she wants. The first time around
> > the loop, the word "varlist" is taken literally
> > and Stata looks for a variable called -varlist-,
> > which she evidently does not have.
> >
> > If Marilyn (and Justin) look again at the help for
> > -foreach-, they will see that "of" is needed here.
> >
> > The second problem, again with Marilyn's original
> > and Justin's suggestion, is that there is a boundary
> > between numeric and string variables that cannot
> > be crossed as casually as you wish. This issue
> > also arose in my reply to someone else about a day ago.
> >
> > qui foreach x of varlist p03a01 p03a01a-p03a01m {
> > replace `x' = "1" if `x' == "si"
> > replace `x' = "0" if `x' == "no"
> > capture destring `x', replace
> > }
> >
> > would seem one possibility. The use of -encode- is
> > another, probably better.
> >
> > Nick
> > [email protected]
> >
> > White, Justin
> >
> > > This sounds to me that Stata is having a hard time
> recognizing your
> > > varlist.
> > >
> > > Try listing each variable rather than using < p03a01a-p03a01m >.
> > >
> > > Also, why generate y?
> > >
> > > Why would you not use this:
> > >
> > > foreach x in varlist ......... {
> > > replace `x' = 1 if `x'=="si"
> > > replace `x' = 0 if `x'=="no"
> > > }
> >
> > Ms. Marilyn Ibarra
> >
> > > I have data that is coded as "si" or "no". I need to
> change this to
> > > numeric variables. I tried the following but keep
> getting an error
> > > message that says, "varlist not found". Can anyone tell
> me what I am
> > > doing wrong?
> > >
> > > Here is the code:
> > >
> > > foreach x in varlist p03a01 p03a01a-p03a01m {
> > > gen y = (`x' == "si")
> > > replace y = 0 if (`x' =="no")
> > > drop `x'
> > > rename y `x'
> > > }
> > >
> >
> > *
> > * 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/
> >
> >
> > *
> > * 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/
> >
>
*
* 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/