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: issue with forvalues/foreach


From   "Rubil Ivica" <irubil@eizg.hr>
To   <statalist@hsphsun2.harvard.edu>
Subject   RE: st: issue with forvalues/foreach
Date   Fri, 14 Dec 2012 16:04:29 +0100

William, Rebecca, Nick, Ben, thank you all. I have finally come to
something that works:

cd "F:\nov_dot\decomposition\data\"

foreach i in alb arm aze bel bih bul cro geo hun ///
  kaz kyr lat lit mol mon pol rom ser taj ukr {  

use "`i'.dta", clear
sum y0, d
local pline = 0.5 * r(p50)
replace y0 = y0 / `pline'
replace y1 = y1 / `pline'
save "`i'.dta", replace

}


So, the -cd- solution works, but I made a mistake when I first tried it:
I used the whole path after -use- and not just the file name.

Thank you people once again.

Ivica



--
Ivica Rubil
Ekonomski institut || The Institute of Economics, Zagreb
Trg J. F. Kennedyja 7, 10 000 Zagreb, Croatia
tel. +385-1-2362-269 || fax. +385-1-2335-165
irubil@eizg.hr || www.eizg.hr





-----Original Message-----
From: owner-statalist@hsphsun2.harvard.edu
[mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Benjamin
Volland
Sent: 14. prosinac 2012 15:50
To: statalist@hsphsun2.harvard.edu
Subject: Re: st: issue with forvalues/foreach

Bok Ivice,

I don't know what's going on in Stata. However, I can offer a simple 
solution.
Based on your initial example I ran the following code

sysuse auto.dta
rename price var1
rename mpg var2
keep var1 var2
save "F:\project\data\Test Folder\data_1.dta", replace

sysuse autornd.dta
rename weight var1
rename mpg var2
keep var1 var2
save "F:\project\data\Test Folder\data_2.dta", replace

sysuse bplong.dta
rename patient var1
rename bp var2
keep var1 var2
save "F:\project\data\Test Folder\data_3.dta", replace

clear
cd "F:\project\data\Test Folder\"
forval i=1/3 {
	use "data_`i'.dta,clear
	compress var1 var2
	save "data_`i'b.dta, replace
	}

And ran into the same problem, i.e.

. file data_1.dta, clear not found
. r(601);

However, after simply changing the loop to

forval i=1/3 {
	use "data_`i'.dta
	compress var1 var2
	save "data_`i'b.dta, replace
	clear
	}

everything runs like a charm.

HTH, Ben


On 14/12/2012 15:38, Rubil Ivica wrote:
> Nick,
> here is one code that I tried to run recently.
>
>
> foreach i in alb arm aze bel bih bul cro geo hun kaz kyr lat lit mol
mon
> pol rom ser taj ukr {
>
> use "F:\nov_dot\decomposition\data\`i'.dta", clear
> sum y0, d
> local pline = 0.5 * r(p50)
> replace y0 = y0 / `pline'
> replace y1 = y1 / `pline'
> save "F:\nov_dot\decomposition\data\`i'.dta", replace
> clear
>
> }
>
> And what Stata gives me is:
>
> file F:\nov_dot\decomposition\data`i'.dta not found
> r(601);
>
> end of do-file
>
> r(601);
>
>
> Strangely, Stata seems not to recognize the last "\" in the first line
> within the loop.
>
> Again, this happens whenever I have a path within a loop, be it
> -forvalues- or -foreach-.
>
> Hope you can help.
>
> Ivica
>
>
>
> --
> Ivica Rubil
> Ekonomski institut || The Institute of Economics, Zagreb
> Trg J. F. Kennedyja 7, 10 000 Zagreb, Croatia
> tel. +385-1-2362-269 || fax. +385-1-2335-165
> irubil@eizg.hr || www.eizg.hr
>
>
> -----Original Message-----
> From: owner-statalist@hsphsun2.harvard.edu
> [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Nick Cox
> Sent: 14. prosinac 2012 15:17
> To: statalist@hsphsun2.harvard.edu
> Subject: Re: st: issue with forvalues/foreach
>
> Sorry, but your question remains very difficult to answer. But know
> that the macro used in the -forval- or -foreach- statement is not
> visible beyond the loop.
>
> Nick
>
> On 14 Dec 2012, at 13:27, "Rubil Ivica" <irubil@eizg.hr> wrote:
>
>> I didn't send the actual code because it is long.
>> The same problem appears whenever I have a path within the
-forvalues-
>> or -foreach- loop.
>> The files are certainly in the folders that I am referring to in
>> paths.
>>
>>
>>
>>
>> --
>> Ivica Rubil
>> Ekonomski institut || The Institute of Economics, Zagreb
>> Trg J. F. Kennedyja 7, 10 000 Zagreb, Croatia
>> tel. +385-1-2362-269 || fax. +385-1-2335-165
>> irubil@eizg.hr || www.eizg.hr
>>
>> -----Original Message-----
>> From: owner-statalist@hsphsun2.harvard.edu
>> [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Rebecca
>> Pope
>> Sent: 13. prosinac 2012 17:52
>> To: statalist@hsphsun2.harvard.edu
>> Subject: Re: st: issue with forvalues/foreach
>>
>> Try this, since it looks like your files are all in the same
>> directory:
>> cd "F:\project\data\"
>> forval i=1/30 {
>>    use `"dataset_`i'.dta"', clear
>>    compress var1 var2
>>    save `"dataset_`i'.dta"', replace
>> }
>>
>> Note on your -foreach- loop, you tell Stata that "country" is the
>> macro. Therefore, your code should say:
>> foreach country in croatia albania {
>>    use "F:\project\data\dataset_`country'.dta", clear
>>    compress var1 var2
>>    save "F:\project\data\dataset_`country'.dta", replace
>> }
>>
>> I also changed the colon in the save to an underscore, since I assume
>> that is what you meant.
>>
>> If that doesn't work, please post the code you are really submitting.
>> Perhaps there is something particular to it that isn't captured by
>> your example.
>>
>> Best,
>> Rebecca
>>
>>
>> On Thu, Dec 13, 2012 at 10:36 AM, Rubil Ivica <irubil@eizg.hr> wrote:
>>> William, what your suggested does not work either, even after
>>> sustituting "/" for "\".
>>>
>>>
>>>
>>>
>>>
>>> --
>>> Ivica Rubil
>>> Ekonomski institut || The Institute of Economics, Zagreb
>>> Trg J. F. Kennedyja 7, 10 000 Zagreb, Croatia
>>> tel. +385-1-2362-269 || fax. +385-1-2335-165
>>> irubil@eizg.hr || www.eizg.hr
>>>
>>>
>>> -----Original Message-----
>>> From: owner-statalist@hsphsun2.harvard.edu
>>> [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of William
>>> Buchanan
>>> Sent: 13. prosinac 2012 17:28
>>> To: statalist@hsphsun2.harvard.edu
>>> Subject: Re: st: issue with forvalues/foreach
>>>
>>> Hi Ivica,
>>>
>>> Try:
>>>
>>> forv i = 1/30 {
>>>         use `"F:/project/data/dataset_`i'"', clear
>>>         compress var1 var2
>>>         save `"F:/project/data/dataset_`i'b"', replace
>>>         clear
>>> }
>>>
>>> It's probably a good idea not to permanently modify your data files
>> (so
>>> adding "b" to the end of the filename should make it easier to
>>> distinguish the two).  Also notice the use of "/" instead of "\" in
>> the
>>> file path.  Using the "/" character will work on all platforms, and
>>> avoids some of the problems that you faced.
>>>
>>> HTH,
>>> Billy
>>>
>>>
>>> On Dec 13, 2012, at 8:21 AM, Rubil Ivica wrote:
>>>
>>>> Dear Statalisters:
>>>>
>>>> When I to run the following (two artificial examples just to
>>> illustrate
>>>> the issue)
>>>>
>>>> forvalues i = 1(1)30 {
>>>>       use "F:\project\data\dataset_`i'.dta", clear
>>>>       compress var1 var2
>>>>       save "F:\project\data\dataset_`i'.dta", replace
>>>>       clear
>>>> }
>>>>
>>>> or for instance
>>>>
>>>> foreach country in croatia albania {
>>>>       use "F:\project\data\dataset_`i'.dta", clear
>>>>       compress var1 var2
>>>>       save "F:\project\data\dataset:`i'.dta", replace
>>>>       clear
>>>> }
>>>>
>>>> Stata returns
>>>>
>>>> file F:\project\data`i'.dta not found
>>>>
>>>> It seems strange to me that Stata "forgets" the exactly specified
>>> path:
>>>> "F:\project\data\dataset_`i'.dta" in the first example
>>>> and
>>>> "F:\project\data\dataset_`i'.dta" in the second example.
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Ivica Rubil
>>>> Ekonomski institut || The Institute of Economics, Zagreb
>>>> Trg J. F. Kennedyja 7, 10 000 Zagreb, Croatia
>>>> tel. +385-1-2362-269 || fax. +385-1-2335-165
>>>> irubil@eizg.hr || www.eizg.hr
>>>>
>>>>
>>>> *
>>>> *   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/
>>
>> *
>> *   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/

*
*   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/


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