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: How to run same code on multiple datasets
From
Sergiy Radyakin <[email protected]>
To
"[email protected]" <[email protected]>
Subject
Re: st: How to run same code on multiple datasets
Date
Wed, 27 Nov 2013 22:38:47 -0500
Zhang, use -set trace on- to find in which statement the error occurs.
I think it is the -save- statement. And the error occurs because you
supply the whole list of files as the filename, not just one
individual filename. Alfonso's recommendation is valid, but it fixes a
different error (beginning of the second iteration) while the error
you quote is in the end of the first iteration.
Best Sergiy.
On Wed, Nov 27, 2013 at 10:11 PM, Furner, Zhan <[email protected]> wrote:
> Good catch, thanks a lot Alfonso! However that didn't solve the problem. I'm getting the same error message.
>
> Zhan Z. Furner, CPA
> Ph.D. Candidate
> Rawls College of Business
> Texas Tech University
> [email protected]
>
>
>
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On Behalf Of Alfonso Sanchez-Penalver
> Sent: Wednesday, November 27, 2013 9:00 PM
> To: [email protected]
> Subject: Re: st: How to run same code on multiple datasets
>
> My first take is that you should use
>
> use 'aaa', clear
>
> You are not clearing the dataset in memory on the second iteration in the loop.
>
> Best,
>
> Alfonso Sanchez-Penalver
>
>> On Nov 27, 2013, at 9:54 PM, "Furner, Zhan" <[email protected]> wrote:
>>
>> Hello all,
>>
>> I'm trying to create a do file (see below) that would allow me to run the same code on multiple datasets (the first dataset is yearind19902, then yearind19903...). I think the file runs well for the first dataset because the variable 'ratio' is created correctly in the first dataset. However, Stata stopped executing for the rest of datasets and I got an error message as follows:
>> invalid `"yearind19903.dta'
>> r(198);
>>
>>
>> ***Begin Code ****
>>
>> local workdir "C:\xxx\xxx\xxx"
>> cd `workdir'
>> local files: dir "`workdir'" files "*.dta"
>>
>> foreach aaa of local files {
>> use `aaa'
>> sort plan
>> count if plan<1
>> gen n1=r(N)
>> count if plan>0
>> gen n2=r(N)
>> gen ratio=n1/n2 if plan<1
>> replace ratio=1 if missing(ratio)
>>
>> save `files', replace
>> }
>>
>> *** End Code ***
>>
>>
>> How should I amend my code to fix this problem?
>>
>> Thank you so much and happy Thanksgiving!
>>
>> Zhan
>>
>>
>>
>>
>>
>>
>>
>>
>> *
>> * 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/
*
* 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/