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]
Re: st: skipping out of and restarting a loop if an error occurs
From
Ryan Kessler <[email protected]>
To
[email protected]
Subject
Re: st: skipping out of and restarting a loop if an error occurs
Date
Thu, 1 Nov 2012 12:51:18 -0400
Hi Ben,
To skip the rest of the loop's commands you can nest them within an if
_rc == 0 statement. For example:
foreach c in `county' {
forval y=2002/2011 {
capture noisily insheet using
"B:/nydata/`c'_`y'_parcel.txt", tab names clear
if _rc == 0 {
// Additional commands
}
}
}
Best,
Ryan
> foreach c in `county' {
> foreach y in `year' {
> capture noisily insheet using "B:/nydata/`c'_`y'_parcel.txt", tab
> names clear
> save "`newparcel'", replace
> use "`combinedyr'"
> append using `newparcel'
> save "`combinedyr'", replace
> }
On Thu, Nov 1, 2012 at 12:40 PM, Ben Hoen <[email protected]> wrote:
> I am trying to loop through txt files of New York counties (9 of them) and
> years (2000-2012) for which some year/county combinations are missing. For
> each file I am using insheet and then, once loaded I perform some additional
> commands and the append it with the previously loaded file.
>
> The files are named using their respective year county, e.g, "<county
> name>_<year>_parcel.txt"
>
> I have been able to use .capture noisily to skip the unsuccessful .insheet
> command, but have not been able to find a way to skip the rest of the loop's
> commands and start at the top. (I thought it might involve the "_rc" stored
> value and "continue" ... but was not able to figure out how to do that)
>
> Any help would be much appreciated. Thanks in advance.
>
> Ben
>
> Here is some sample code:
>
> ==============================================================
> clear all
> tempfile newparcel combinedyr combinedco
> g testvar=. //to create some data to initially store
> save "`combinedco'"
> save "`combinedyr'"
>
> local year "2002 2003 2004 2005 2006 2007 2008 2009 2010 2011"
> local county "allegany clinton erie franklin madison oneida steuben wyoming
> yates"
>
> foreach c in `county' {
> foreach y in `year' {
> capture noisily insheet using "B:/nydata/`c'_`y'_parcel.txt", tab
> names clear
> save "`newparcel'", replace
> use "`combinedyr'"
> append using `newparcel'
> save "`combinedyr'", replace
> }
>
> duplicates drop, force
> save "`combinedyr'",replace
> use "`combinedco'"
> append using "`combinedyr'"
> save "`combinedco'", replace
> drop _all
> g testvar=. //to create some data to initially store
> save "`combinedyr'", replace
> }
>
>
> use "`combinedco'"
> drop testvar
> save allparcels.dta, replace
>
> ===============================================================
> Ben Hoen
> Principal Research Associate
> Lawrence Berkeley National Laboratory
> Office: 845-758-1896
> Cell: 718-812-7589
> [email protected]
> http://emp.lbl.gov/staff/ben-hoen
>
> Visit our publications at:
> http://emp.lbl.gov/publications
>
>
>
>
>
> *
> * 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/
*
* 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/