Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, statalist.org is already up and running.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: How to generate dummy for the following years


From   Ronnie Babigumira <rb.glists@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: How to generate dummy for the following years
Date   Fri, 27 Jul 2012 00:28:34 +0300

Umut,
Regarding your original question on generating dummies. There will be more direct ways but here is one way to do it. 

clear
input str8 firm_id year export
00028073 2003 1
00028073 2004 1
00028073 2005 0
00028073 2006 1
00028073 2007 0
00028073 2008 1
00028073 2009 1
00028073 2010 1
00028073 2011 1
00036721 2003 0
00036721 2004 0
00036721 2005 0
00036721 2006 0
00036721 2007 0
00036721 2008 0
00036721 2009 0
00036721 2010 0
00047152 2003 1
00047152 2004 1
00047152 2005 1
00047152 2006 0
00047152 2007 0
00047152 2008 0
00047152 2009 0
00047152 2010 0
00047152 2011 1
00063351 2010 1
00063351 2011 1
00144277 2007 1
00144277 2008 1
00144277 2009 0
00144277 2010 1
00144614 2009 0
00144614 2010 0
00145362 2003 1
00145362 2004 1
00145362 2005 1
00147034 2003 1
00147034 2004 1
00147034 2005 1
00147034 2006 1
00147034 2007 1
00147034 2008 1
00147034 2009 1
00147034 2010 1
end

*  Always exporter
tempvar foo
bys firm_id : egen `foo' = mean(export)
gen always_exporter = `foo' == 1

* Start and end data for exporters
* Split data
tempfile fdata nedata
save `fdata'
drop if export == 1
save `nedata'
use `fdata'
keep if export == 1

bysort firm_id (year): gen start= year[1]
bysort firm_id (year): gen end= year[_N]

* Append non-export data and fillin missing data
append using `nedata'
bys firm_id (start): replace start = start[_n-1] if start >= . 
bys firm_id (end): replace end = end[_n-1] if end >= . 

sort firm_id year
list, sepby(firm_id)



Hope this is helpful

Ronnie

-- 
010100100110111101101110011011100110100101100101




On Thursday, July 26, 2012 at 6:07 PM, umut senalp wrote:

> Dear Stata Listers,
> 
> I am using StataSE 12. I have an unbalanced data for over 2000 firms (covering the period 2003-2011) and I have a dummy variable for the firms' export status (Export=1 if firm have positive export value that year). While, a few firms observed for all 9 years (2003-2011), majority of them observed for minimum 2 years consecutively. 
> I want to create a new set of dummy variables indicating the year that a firm started to export (Starter), 
> one year before starting to export (Year_before),and for the following two years that the firm started to export which are Year_After and Two_Years_After. 
> So, I want to generate 4 new dummies based on the firm's Export status. In addition to that, I have some firms which are exporter for the all period that they are observable (means I do not know when they started to export), and I want to name them as Always_Exporter.
> 
> Since I am not so familiar with programming in Stata I tried following command but it failed, it was just for the firms that I have observation for 2003 onwards, anyway.
> gen starter=0
> replace starter=1 if export==0 in 2003 & export==1 in 2004
> 
> And I realised that this approach will not work since I need to do it for many times for following years to catch all starters.
> 
> Well, I think I need to use a program that includes loop but I don't know where to start to write the code. I would be glad if you could help me on this issue. I hope I've the issue clear enough.
> 
> Kind regards
> 
> Umut SENALP 
> *
> * 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/


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index