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]

From |
Sergiy Radyakin <serjradyakin@gmail.com> |

To |
"statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu> |

Subject |
Re: st: Defining upper limit of loop |

Date |
Wed, 11 Dec 2013 17:46:09 -0500 |

Nabin, a loop is a programming technique which allows 'shorthand notation'. For example, instead of writing display 1 display 2 display 3 display 4 we write forval i=1/4 { display `i' } But when we look at the loop we can still understand right away, that the loop index i will take values 1,2,3,4. In a different situation with foreach we write foreach v in X Y Z { display `"`v'"' } and we know v will take values X, then Y, then Z. When you write 1/"Z" what is it supposed to mean? What is in between 1 and "Z"??? The only way I see it is if you want to evaluate Z separately for every observation: clear sysuse auto rename price X rename rep78 Z generate sum=X forvalues i=1/`=_N' { replace sum=X+X[_n+`=Z[_n]'] in `i' } But kindly invest more time into the question. Best, Sergiy Radyakin On Wed, Dec 11, 2013 at 5:30 PM, Nabin Kafle <nkafle89@gmail.com> wrote: > I want to loop a cycle number of times indicated by a number in a variable name. > For example: > X Y Z > 1 2 1 > 2 3 4 > 3 2 2 > 3 2 2 > 4 2 2 > . . . . > > gen sum=X > forvalues i=1/"Z" { > replace sum=X+X[_n+`i'] > } > > What would be other way to do such if it is not possible by -forvalues- command. > > On Wed, Dec 11, 2013 at 4:18 PM, Thomas, Anthony > <anthony_h_thomas@brown.edu> wrote: >> Stata probably will not let you do that. Variable names cannot be a >> number, and "forval" type loops expect a numeric range (i.e. "variable >> name" would have to be a number). If you want to use variables in a >> loop, consider using: >> >> foreach i of varlist "varlist"{ >> >> commands >> >> } >> >> Anthony >> >> On Wed, Dec 11, 2013 at 5:08 PM, Nabin Kafle <nkafle89@gmail.com> wrote: >>> Is there a way that I can use the forvalues command in stata in a way >>> that I upper value of the loop can be defined from the varibale list. >>> >>> forvalues i = 1/"var name" { >>> code for loop >>> * >>> * 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/ > > > > -- > Nabin Kafle > * > * 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/

**References**:**st: Defining upper limit of loop***From:*Nabin Kafle <nkafle89@gmail.com>

**Re: st: Defining upper limit of loop***From:*"Thomas, Anthony" <anthony_h_thomas@brown.edu>

**Re: st: Defining upper limit of loop***From:*Nabin Kafle <nkafle89@gmail.com>

- Prev by Date:
**Re: st: Defining upper limit of loop** - Next by Date:
**RE: st: Defining upper limit of loop** - Previous by thread:
**RE: st: Defining upper limit of loop** - Index(es):