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 at the end of May, and its replacement, statalist.org is already up and running.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: Need help with working with multiple files


From   Steve Samuels <sjsamuels@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Need help with working with multiple files
Date   Mon, 27 May 2013 21:46:45 -0400

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
njcoxstata@gmail.com


On 28 May 2013 01:23, Steve Samuels <sjsamuels@gmail.com> wrote:
> 
> Michael Steward (michaelstewartresearch@gmail.com):
> 
> 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
> 
> 
> 
> 
> --
> 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/
> 
> 
> *
> *   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