Bookmark and Share

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


From   William Buchanan <[email protected]>
To   [email protected]
Subject   Re: st: issue with forvalues/foreach
Date   Fri, 14 Dec 2012 06:57:56 -0800

Hi Ivica,

In the first example that I had sent you I enclosed the file path in compound double quotes (you can find information on quotes in Stata in [U] 18.3.5 or type -h quotes-).  Have you tried running your syntax with -set trace on-? Given the error message that you provided, Stata doesn't seem to be expanding the macro `i' correctly .  I've personally ran into numerous problems using the "\" character in file paths and have made it a habit to use "/" on MAC and Windows OS (since they are interpreted the same way).  Try enclosing the file path with compound double quotes and/or running the syntax with -set trace on- and see if that helps.

HTH,
Billy


On Dec 14, 2012, at 6:38 AM, 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
> [email protected] || www.eizg.hr
> 
> 
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Nick Cox
> Sent: 14. prosinac 2012 15:17
> To: [email protected]
> 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" <[email protected]> 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
>> [email protected] || www.eizg.hr
>> 
>> -----Original Message-----
>> From: [email protected]
>> [mailto:[email protected]] On Behalf Of Rebecca  
>> Pope
>> Sent: 13. prosinac 2012 17:52
>> To: [email protected]
>> 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 <[email protected]> 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
>>> [email protected] || www.eizg.hr
>>> 
>>> 
>>> -----Original Message-----
>>> From: [email protected]
>>> [mailto:[email protected]] On Behalf Of William
>>> Buchanan
>>> Sent: 13. prosinac 2012 17:28
>>> To: [email protected]
>>> 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
>>>> [email protected] || 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/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index