Statalist The Stata Listserver


[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: RE: RE: RE: RE: foreach


From   "Nick Cox" <[email protected]>
To   <[email protected]>
Subject   st: RE: RE: RE: RE: foreach
Date   Fri, 27 Oct 2006 15:52:22 +0100

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/



© Copyright 1996–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index