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: Need help with working with multiple files


From   Michael Stewart <[email protected]>
To   statalist <[email protected]>
Subject   Re: st: Need help with working with multiple files
Date   Tue, 28 May 2013 04:27:19 -0400

Thanks for the clarification Nick
Thanks
MIke

On Tue, May 28, 2013 at 3:51 AM, Nick Cox <[email protected]> wrote:
> My point is a general one about macro manipulation. Consider the
> following code, which you can run as a block
>
> local ds1 "foo"
> local ds2 "bar"
> local all ds1 ds2
>
> foreach x in `all' {
> di "Show name: " _c
> di "`x'"
> di "Show contents: " _c
> di "``x''"
> }
>
> Here are the results.
>
> Show name: ds1
> Show contents: foo
> Show name: ds2
> Show contents: bar
>
> Nothing about macro manipulation is affected by filenames being the
> subject of manipulation, or  on which operating system you use.
>
> I suspect Steve has the same files existing under other names.
> Otherwise put, what is the explanation for this working for Steve that
> is consistent with the logic of local macros?
>
> Nick
> [email protected]
>
> On 28 May 2013 02:46, Steve Samuels <[email protected]> wrote:
>>
>> Well, I was concerned about that, but the code worked for me in
>> Mac OS X, Here was my test do file:
>>
>>
>> **********************************
>> local ds1 "~Downloads/testsim01"
>> local ds2 "~Downloads/dtest01"
>>
>> local all ds1 ds2
>> di `"`all'"'
>> foreach x in `all' {
>> use `x', clear
>> gen nv =1
>> save `x'_new, replace
>> }
>> ********************************
>>
>> Steve
>>
>> On May 27, 2013, at 8:50 PM, Nick Cox wrote:
>>
>> This won't work, as when Stata hits the loop
>>
>> foreach x in `all'
>>
>> it will then see
>>
>> foreach x in ds1 ds2
>>
>> and will fail at
>>
>> use ds1, clear
>>
>> There are two levels of macro referencing in Steve's code, but only
>> one level going backwards.
>>
>> use ``x'', clear
>>
>> is one way to fix it.
>>
>> Nick
>> [email protected]
>>
>>
>> On 28 May 2013 01:23, Steve Samuels <[email protected]> wrote:
>>>
>>> Michael Steward ([email protected]):
>>>
>>> You can loop, as Nick suggests. Put the data management tasks in
>>> external do files, e.g. tasks1.do, tasks2.do, tasks3.do. Then something
>>> like the following should work (not tested in Windows). See the help for
>>> -include-. The big problem I anticipate is the mounds of output that
>>> this could generate.
>>>
>>>
>>> *********************************
>>> local ds1 "c/data/dataset-1"
>>> local ds2 "c/data/newdata/dataset-2" // etc.
>>>
>>> local all ds1 ds2
>>>
>>> foreach x in `all' {
>>>   use `x', clear
>>>
>>>   include tasks1
>>>   include tasks2
>>>   include tasks3
>>>
>>>   save `x'_new, replace
>>> }
>>> *********************************
>>>
>>> Steve
>>>
>>>
>>> On May 27, 2013, at 3:19 PM, Michael Stewart wrote:
>>>
>>> Hi
>>> I am trying to find a way to work multiple files successively.
>>> I have multiple large files(really large) placed in different directories
>>> I am trying to find a way to load each file into stata, complete bunch
>>> of same datamagement tasks,create  a new file from it and places them
>>> in a common folder
>>>
>>> I could use a dofile and do something like
>>>
>>> clear
>>> use c\data\dataset-1
>>> datamagement tasks
>>> datamagement tasks
>>> datamagement tasks
>>> save c\data\dataset-1_new
>>> clear
>>> use c\data\newdata\dataset-2
>>> datamagement tasks
>>> datamagement tasks
>>> datamagement tasks
>>> save c\data\newdata\dataset-2_new
>>> clear
>>>
>>> But is there an elegant and simpler way to do it given that I have
>>> nearly 15 files to do data management tasks.
>>>
>>> Can we use foreach loop / forvalues loop or anything like that .Please suggest
> *
> *   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/



-- 
Thank you ,
Yours Sincerely,
Mike.
*
*   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