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   Rebecca Pope <[email protected]>
To   [email protected]
Subject   Re: st: issue with forvalues/foreach
Date   Fri, 14 Dec 2012 09:19:50 -0600

Sorry, e-mail is refreshing slow today. I didn't see all the new
traffic on this post before I submitted my update!

RP


On Fri, Dec 14, 2012 at 9:17 AM, Rebecca Pope <[email protected]> wrote:
> The following works fine for me, so I can't comment on why -cd- did
> not work for you (or Ben). This seems like an odd quirk across
> machines. I'm running Windows 7; I'm not sure why or if that matters.
>
> cd "C:\Users\poper\Documents\Statalist"
> sysuse auto, clear
> rename mpg y0
> rename weight y1
> save alb.dta, replace
>
> sysuse auto, clear
> rename mpg y0
> rename weight y1
> save arm, replace
>
> foreach i in alb arm {
>   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
> }
>
> As does Billy's original suggestion for using "/" in place of "\". You
> also said this did not work. Again, I'm not sure why, but this seems
> to be an interesting phenomenon.
>
> foreach i in alb arm {
>   use "C:/Users/poper/Documents/Statalist/`i'.dta", clear
>   sum y0, d
>   local pline = 0.5 * r(p50)
>   replace y0 = y0 / `pline'
>   replace y1 = y1 / `pline'
>   save "C:/Users/poper/Documents/Statalist/`i'.dta", replace
> }
>
> Try creating a test directory & submitting either the code that I've
> posted or what Ben posted that we have verified works & see if it runs
> on your computer. Just trying to isolate the problem...
>
> Rebecca
>
>
>
> On Fri, Dec 14, 2012 at 8:57 AM, William Buchanan
> <[email protected]> wrote:
>> 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/

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