Bookmark and Share

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


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index