Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Jack Newsham <j.newsham@gmail.com> |
To | statalist@hsphsun2.harvard.edu |
Subject | st: Generating a value depending on filename |
Date | Tue, 3 Dec 2013 16:24:29 -0500 |
Hi all, I'm working with state-by-state employment data on 51 Excel spreadsheets that I plan to eventually append together and merge into my main project file. Each spreadsheet is organized in columns containing the year, month, and several measures of employment, with only the name of the spreadsheet identifying the state whose data it contains. I am attempting to create two variables -- "time" and "state" -- to merge these data into my main file. I'm somewhat of a Stata naif, however, and I'm running into a problem when I try to generate "state" and give it a different value in every spreadsheet. My use of "if filename ==" and "if using" seem to be the source of the problem, but I can't imagine how to generate a state variable with a different value in each file. I've excerpted from my do file, in relevant part. Can you advise? Is there a way to do this in a loop? My thanks for any pointers. foreach initials in AK AL AR AZ CA { * The clear command is at the end of this loop. import excel `initials'_labor_vars.xls, sheet("BLS Data Series") firstrow * Create time variable by which to merge: encode period,gen(monthnum) gen time = (year * 100) + monthnum * Create state variable by which to merge: gen state = 01 if filename == "AL_labor_vars.xls" | 02 if filename == "AK_labor_vars.xls" | /// 04 if filename == "AZ_labor_vars.xls" | 05 if filename == "AR_labor_vars.xls" | /// 06 if filename == "CA_labor_vars.xls" } Best, Jack Newsham * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/faqs/resources/statalist-faq/ * http://www.ats.ucla.edu/stat/stata/