Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

RE: st: re: averaging within a variable


From   [email protected]
To   [email protected]
Subject   RE: st: re: averaging within a variable
Date   Wed, 13 Jul 2005 11:03:38 +0100 (BST)

To loop you can use the command -ds-:

if you want to do that to all the variables in the data set, except for
the id number, then you can say:

(1) ds idnumber, not

alternatively you can have:

(2) ds -the 100 variables-

Or if you 100 variables all start with a certain set of letters, say vars1
to vars100, you write:

ds vars*


After either (1) or (2) or (3), you can write the loop as follows:

foreach var of varlist `r(varlist)' {

COMMANDS TO BE LOOPED

}



> now suppose I had to do this operation in 100 different variabes (call
> them
> var1-var100), how can i code a simple loot to do that?
>
> i want to perform this within each variable: gen  Var2=(Var1+Var1[_n-1])/2
> if mod(_n,2)==0
>
> (even _n calculations are fine...)
>
> Thanks!
>
>
>>From: Kit Baum <[email protected]>
>>Reply-To: [email protected]
>>To: [email protected]
>>Subject: st: re: averaging within a variable
>>Date: Tue, 12 Jul 2005 22:32:13 -0400
>>
>>Austin said
>>
>>g  Var2=(Var1+Var1[_n-1])/2 if mod(_n,2)==0
>>
>>-----Original Message-----
>>From: kelly johnson [mailto:[email protected]]
>>Sent: Tuesday, July 12, 2005 9:51 PM
>>Hi,
>>Quick question: suppose I have a variable like this:
>>N  Var1
>>1  12
>>2  45
>>3  65
>>100  15
>>How can I create a new variable whose first observation is the average of
>>Var1[1] and Var1[2], second observation is the avaerage of Var1[3] and
>>Var1[4], etc. There will be a total of 50 observations for this new
>>variable. Thanks in advance!
>>
>>Not quite. That creates the even-numbered obs. of Var2 as the desired
>>values, with the odd-numbered values equal to missing. To fix that up,
>>thanks to Bill Gould's excellent tutorial at this morning's Boston SUG
>>meeting, you may use a cute mata trick (in Stata 9, anyway):
>>
>>clear
>>set obs 100
>>g Var1=_n
>>g  Var2=(Var1+Var1[_n-1])/2 if mod(_n,2)==0
>>mata:
>>	v = st_data(.,"Var2",0)  // grab nonmissing elements of Var2
>>	null=J(50,1,.)
>>	v = v\null               // append 50 missings
>>	st_store(.,2,v)          // stuff it back in Var2
>>	end
>>list
>>
>>
>>Kit Baum, Boston College Economics
>>http://ideas.repec.org/e/pba1.html
>>
>>*
>>*   For searches and help try:
>>*   http://www.stata.com/support/faqs/res/findit.html
>>*   http://www.stata.com/support/statalist/faq
>>*   http://www.ats.ucla.edu/stat/stata/
>
> _________________________________________________________________
> Express yourself instantly with MSN Messenger! Download today - it's FREE!
> http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
>
> *
> *   For searches and help try:
> *   http://www.stata.com/support/faqs/res/findit.html
> *   http://www.stata.com/support/statalist/faq
> *   http://www.ats.ucla.edu/stat/stata/
>


*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



© Copyright 1996–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index