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
Nick Cox <[email protected]>
To
[email protected]
Subject
Re: st: skipping out of and restarting a loop if an error occurs
Date
Thu, 1 Nov 2012 17:14:19 +0000
I agree with Ryan's advice. You could write
if _rc != 0 continue
if you so wished.
Nick
On Thu, Nov 1, 2012 at 4:51 PM, Ryan Kessler
<[email protected]> wrote:
> 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/
*
* 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/