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]
Re: st: Defining upper limit of loop
From 
 
Sergiy Radyakin <[email protected]> 
To 
 
"[email protected]" <[email protected]> 
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 <[email protected]> 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
> <[email protected]> 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 <[email protected]> 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/