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/