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/