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/