Notice: On March 31, it was **announced** that Statalist is moving from an email list to a **forum**. The old list will shut down on April 23, and its replacement, **statalist.org** is already up and running.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

From |
Jeph Herrin <stata@spandrel.net> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: For loops, If Statements and Delimiters |

Date |
Tue, 12 Feb 2013 10:09:35 -0500 |

cheers, Jeph On 2/11/2013 3:24 PM, Ryan Stevens wrote:

So I just re-pasted the code I typed for the email, and adapted it for the do file and everything is working fine. I'm still a little dumb founded on where the actual error lay, I think it was some spacing issues with my semi-colons. On Mon, Feb 11, 2013 at 3:01 PM, Joerg Luedicke <joerg.luedicke@gmail.com> wrote:Did you look at the -trace-? (-help trace-) Perhaps you could post an excerpt of it. Joerg On Mon, Feb 11, 2013 at 2:54 PM, Ryan Stevens <stevrl7@gmail.com> wrote:I'm guessing that using Stata 12 should have no effect? Also, this is code I've extracted from a larger do file and changed a bit to make it more general. If you're getting it to work, maybe there's something going on with the rest of my do file that I'm unaware of. But I was hoping to see if anyone else had had similar issues with delimiters and for loops. Thanks both of you for responding so quickly. Ryan On Mon, Feb 11, 2013 at 2:48 PM, Joerg Luedicke <joerg.luedicke@gmail.com> wrote:FWIW, I cannot replicate this. Running the following in Stata 11.2: *------------------------------------------ clear set obs 100 forval i=1/3 { gen var`i' = `i' } # delimit ; local j = 1; foreach x of varlist var1-var3{; forval i = 1/12{; if(`j'<3){; replace `x' = `x'[`i']-`x'[`j'] in `i'; local j = `j' + 1; }; else{; replace `x' = `x'[`i']-`x'[`j'] in `i'; local j = 3; }; }; }; *------------------------------------------ works as expected: <snip> - forval i = 1/12{ - if(`j'<3){ = if(1<3){ - replace `x' = `x'[`i']-`x'[`j'] in `i' <snip> Joerg On Mon, Feb 11, 2013 at 2:41 PM, Nick Cox <njcoxstata@gmail.com> wrote:Any suggestion? Mine would include not using ; as a delimiter. More positively, I would always put a space before each brace. My vague recollection is that there are some very obscure bugs that can bite with semi-colons, although a search did not turn up a precise post, but spaces before braces might be the territory. Nick On Mon, Feb 11, 2013 at 7:30 PM, Ryan Stevens <stevrl7@gmail.com> wrote:I have been having an issue with using for loop and if statements together with a semi-colon delimiter. The following is some example code for the problem I've come across: # delimit ; local j = 1; foreach x of varlist var1-var3{; forval i = 1/12{; if(`j'<3){; replace `x' = `x'[`i']-`x'[`j'] in `i'; local j = `j' + 1; }; else{; replace `x' = `x'[`i']-`x'[`j'] in `i'; local j = 3; }; }; }; Whenever I try running this I get an error on my if statement, where Stata interprets "< 3" as a variable name. Any suggestions for loops and if statements using delimiters would be greatly appreciated.* * 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/* * 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/* * 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/

**Follow-Ups**:**Re: st: For loops, If Statements and Delimiters***From:*Ryan Stevens <stevrl7@gmail.com>

**References**:**st: For loops, If Statements and Delimiters***From:*Ryan Stevens <stevrl7@gmail.com>

**Re: st: For loops, If Statements and Delimiters***From:*Nick Cox <njcoxstata@gmail.com>

**Re: st: For loops, If Statements and Delimiters***From:*Joerg Luedicke <joerg.luedicke@gmail.com>

**Re: st: For loops, If Statements and Delimiters***From:*Ryan Stevens <stevrl7@gmail.com>

**Re: st: For loops, If Statements and Delimiters***From:*Joerg Luedicke <joerg.luedicke@gmail.com>

**Re: st: For loops, If Statements and Delimiters***From:*Ryan Stevens <stevrl7@gmail.com>

- Prev by Date:
**st: Mokken scaling procedure - output** - Next by Date:
**Re: Re: st: nl command - error#130 expression too long** - Previous by thread:
**Re: st: For loops, If Statements and Delimiters** - Next by thread:
**Re: st: For loops, If Statements and Delimiters** - Index(es):