Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Robert Picard <picard@netbox.com> |
To | statalist@hsphsun2.harvard.edu |
Subject | Re: st: Calculating variable-averages of time-spans (laid out case by case via variables) |
Date | Fri, 11 Mar 2011 14:03:40 +0100 |
You need to learn how to group records in Stata. Here one way of doing it: sort idcode year isid idcode year by idcode: gen m = (wks_work + wks_work[_n-1]) / 2 * Tag the burnout year gen target = year == burnoutyear * Push the burnout year down to the last record of the idcode group sort idcode target year by idcode: gen mm = m[_N] On Fri, Mar 11, 2011 at 1:32 PM, Wolfgang Feudenheim <wg_feudenheim@web.de> wrote: > Hi, > > I am currently working on an analysis of economic data in OECD-countries. For each country, I separately fixed a key-year. For this specific year and the two preceding years I want to read out averages of economic indicators such as "GDP/capita" etc. > > In the following, I try to illustrate my problems with the help of the example dataset > "National Longitudinal Survey. Young Women 14-26 years of age in 1968" by pretending I was interested in the average workload before the occurance of a burnout (sorry, couldn't make up any more positive scenario ...). Unfortunately, the time data is not available on a year-by-year-basis but in irregular steps. Therefore, I just observe one specific year and its preceding year. I am running my analysis on > > -Stata/IC 11.1 for Mac (64-bit Intel) > -Born 04 Nov 2010 > > Here is the code: > > -use http://www.stata-press.com/data/r11/nlswork.dta, clear > -*Add Burnout-Values to Dataset* > -gen burnoutyear=. > -replace burnoutyear=73 if idcode==1 > -replace burnoutyear=72 if idcode==2 > > -*Generate Variable for all observations of one person (idcode) that presents the average of weeks worked in burnout-year and* > -*burnout-preceding year* > -egen avworkload_b=mean(wks_work[_n]+wks_work[_n-1]) if (year==burnoutyear)&(idcode[_n]==idcode[_n-1]) > > > The problems that occur are the following: > > 1. For both, "idcode==1" and "idcode==2", the wrong result, namely "25" is displayed. The average values should however be "27 and "17.5". > > 2. The variable "avworkload_b" is only inserted into the dataset for the year indicated by "burnoutyear" for the respective "idcode". I want to have this value displayed for all years of each "idcode". > > Thanks in advance! > > Wolfgang > * > * 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/