Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | "Martin Weiss" <martin.weiss1@gmx.de> |
To | <statalist@hsphsun2.harvard.edu> |
Subject | st: AW: AW: lag and lead average comparison from a specific point in panel data |
Date | Thu, 11 Mar 2010 09:57:32 +0100 |
<> Here is a better version that takes account of your missings in X2: ************* clear* inp int ID Year byte(X1 X2 Z) 111 1990 89 21 0 111 1991 29 . 0 111 1992 87 76 1 111 1993 87 98 0 111 1994 45 88 0 222 1990 98 88 0 222 1991 98 44 0 222 1992 45 71 1 999 1990 76 . 0 999 1991 54 43 0 999 1992 65 32 1 999 1993 65 87 0 999 1994 76 32 0 end bys ID (Year): gen byte indicator=sum(Z)==0 by ID: egen lagtotal=total(indicator*X2) by ID: egen lags=total(indicator*!mi(X2)) gen lagmean=(lagtotal/lags)*indicator drop lagtotal lags li, noo sepby(ID) ************* HTH Martin -----Ursprüngliche Nachricht----- Von: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] Im Auftrag von Martin Weiss Gesendet: Donnerstag, 11. März 2010 09:52 An: statalist@hsphsun2.harvard.edu Betreff: st: AW: lag and lead average comparison from a specific point in panel data <> Here are the means of the lags: ************* clear* inp int ID Year byte(X1 X2 Z) 111 1990 89 21 0 111 1991 29 . 0 111 1992 87 76 1 111 1993 87 98 0 111 1994 45 88 0 222 1990 98 88 0 222 1991 98 44 0 222 1992 45 71 1 999 1990 76 . 0 999 1991 54 43 0 999 1992 65 32 1 999 1993 65 87 0 999 1994 76 32 0 end bys ID (Year): gen byte indicator=sum(Z)==0 by ID: egen lagtotal=total(indicator*X2) by ID: egen lags=total(indicator) gen lagmean=(lagtotal/lags)*indicator drop lagtotal lags li, noo sepby(ID) ************* What would the lead mean look like for ID 222? HTH Martin -----Ursprüngliche Nachricht----- Von: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] Im Auftrag von MoZo Gesendet: Donnerstag, 11. März 2010 06:59 An: statalist@hsphsun2.harvard.edu Betreff: st: lag and lead average comparison from a specific point in panel data I have a panel dataset which is set up as follow: ID Year X1 X2 Z 111 1990 89 21 0 111 1991 29 . 0 111 1992 87 76 1 111 1993 87 98 0 111 1994 45 88 0 222 1990 98 88 0 222 1991 98 44 0 222 1992 45 71 1 . . . . 999 1990 76 . 0 999 1991 54 43 0 999 1992 65 32 1 999 1993 65 87 0 999 1994 76 32 0 I am trying to compare the average of X2 in last 2 years and that in lead 2 years from Z=1. In order to do that I create two new variables: one for the average of 2 lagged years and another for the average of 2 lead years. I am calculating an average of X2 in last 2 years (2 years lagged) prior to an event Z (Z=1) in each panel. This is what I did. . sort ID Year . by ID: egen avgX2lag2yr=mean(l(1/2).X2) if Z==1 But I keep getting error as " unknown function l()" Obviously l(1/2).X2 was not recognized here. I tried to as follow as well: by ccode: egen avgX2lag2yr =(l.X2+l2.X2)/2 if Z==1 But in some cases, X2 are missing. So I can't just put a constant number to average the sum without risking inaccurate result. Thank you in advance for help. Mike * * 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/