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]
st: AW: AW: generate new variable from differencing where subtracted variable  is fixed
From 
 
"Martin Weiss" <[email protected]> 
To 
 
<[email protected]> 
Subject 
 
st: AW: AW: generate new variable from differencing where subtracted variable  is fixed 
Date 
 
Fri, 5 Mar 2010 17:32:39 +0100 
<> 
Disassemble this into separate processes if you want to:
*************
clear*
inp int year byte(x1 x2)  
1960 5 8      
1960 4 10     
1960 2 3       
1961 5 7       
1961 1 2        
1961 3 5
end
//get first value per year into new var
//use -bysort- here as in NJC`s
//http://www.stata-journal.com/sjpdf.html?articlenum=pr0004
bys year: gen byte x2_1=x2[1]
//form diffs
gen byte diff=x1-x2_1
list, noo sepby(year)
*************
You first use -bysort- to have Stata interpret any subscripts as within the
groups fed as a -varlist- to -bysort-. See NJC´s article cited in the code.
The result is year-specific, so the next step can afford to omit the
-bysort-, and take the difference unconditionally...
HTH
Martin
-----Ursprüngliche Nachricht-----
Von: [email protected]
[mailto:[email protected]] Im Auftrag von Martin Weiss
Gesendet: Freitag, 5. März 2010 17:23
An: [email protected]
Betreff: st: AW: generate new variable from differencing where subtracted
variable is fixed
<> 
*************
clear*
inp int year byte(x1 x2)  
1960   5     8          
1960   4     10         
1960   2     3          
1961   5     7          
1961   1     2          
1961   3     5          
end
bys year: gen diff=x1-x2[1]
list, noo
*************
HTH
Martin
-----Ursprüngliche Nachricht-----
Von: [email protected]
[mailto:[email protected]] Im Auftrag von Johannes
Schoder
Gesendet: Freitag, 5. März 2010 17:00
An: [email protected]
Betreff: st: generate new variable from differencing where subtracted
variable is fixed
Dear Statalist users:
I try to calculate the difference between two variables for a panel data 
set, where the subtracted variable (here x2) is always the first 
observation of each year:
For example:
Year   x1   x2         difference: x1-x2 if x2 is the first obs. of the year
1960   5     8           5-8
1960   4     10         4-8
1960   2     3           2-8
1961   5     7           5-7
1961   1     2           1-7
1961   3     5           3-7
I tried something like: bysort year: gen difference= x1-x2[_n==1] but 
Stata does only calculate the first observation for each year and 
otherwise generates missings.
Thanks a lot for any hint!
Regards,
Johannes
-- 
Johannes Schoder
Socioeconomic Institute
University of Zurich
Hottingerstr. 10
8032 Zurich
Phone: +41 44 634 0612
Fax:   +41 44 634 4987
E-mail: [email protected]
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/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/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/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/