# st: RE: Re: Preparing for merge

 From "Nick Cox" To Subject st: RE: Re: Preparing for merge Date Fri, 5 Mar 2004 09:59:12 -0000

```First, let's rewrite that more concisely:

forval a = 1/4 {
forval b = 1/4 {
forval c = 1/4 {
forval d = 1/4 {
clear
set obs 1
gen a = `a'
gen b = `b'
gen c = `c'
gen d = `d'
save a`a'b`b'c`c'd`d',replace
}
}
}
}

Then it looks as if you should go

local i = 0
forval a = 1/4 {
forval b = 1/4 {
forval c = 1/4 {
forval d = 1/4 {
clear
set obs 1
gen a = `a'
gen b = `b'
gen c = `c'
gen d = `d'
save a`++i',replace
}
}
}
}

If your Stata is <= 6, you can still use the
same basic technique by

local i = 0
...
local i = `i' + 1
save a`i', replace
...

That way, your datasets are a1.dta, ..., a256.dta.

But I don't understand why you want to -merge- these
datasets. Do you mean -append-?

Also, if this is the real problem, you could do
it all in place with -egen, seq()-.

Nick
n.j.cox@durham.ac.uk

victor michael zammit

> the following program generates 256 ,1 by 4 datasets.
> Can someone tell me how I could number (in order) these datasets,
> such that I could then use merge and bring them in 1,  256 by 4
> dataset ?
>  local a = 1
> while `a'<= 4   {
> local b = 1
> while `b' <= 4 {
> local c = 1
> while `c' <= 4 {
> local d = 1
> while `d' <= 4  {
> clear
> set obs 1
> gen a = `a'
> gen b = `b'
> gen c = `c'
> gen d = `d'
> save a`a'b`b'c`c'd`d',replace
> local d = `d' + 1
> }
> local c = `c' + 1
> }
> local b = `b' + 1
> }
> local a = `a' + 1
> }

*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/
```