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

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

From |
Ryan Stevens <stevrl7@gmail.com> |

To |
statalist@hsphsun2.harvard.edu |

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

Date |
Mon, 11 Feb 2013 15:24:22 -0500 |

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/ > * > * 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:*Jeph Herrin <stata@spandrel.net>

**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>

- Prev by Date:
**Re: st: For loops, If Statements and Delimiters** - Next by Date:
**st: Truncated string observations from CSPro** - Previous by thread:
**Re: st: For loops, If Statements and Delimiters** - Next by thread:
**Re: st: For loops, If Statements and Delimiters** - Index(es):