Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: RE: RE: RE: mapping a value from 2 variables


From   "Nick Cox" <n.j.cox@durham.ac.uk>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: RE: RE: RE: mapping a value from 2 variables
Date   Wed, 24 Jul 2002 20:11:04 +0100

Joly.Patrick@ic.gc.ca
> n.j.cox@durham.ac.uk wrote
> > 
> > I don't know of anything quite like this, but
> > for once a looping over observations would seem
> > to solve the problem:
> > 
> > }
> > 
> > Nick
> > n.j.cox@durham.ac.uk
> 
> This will work, no doubt.  The reason I hadn't considered 
> -forvalues- for
> this purpose was that I wanted to avoid looping over 
> observations.  Such
> looping is not so bad with my current data which contains 
> approx. 2000
> observations but may be computationaly intensive and slow 
> if I try to extend
> the procedure to situations where labels may take up to 
> 65,536 different
> coding values -- the Stata limit for value labels.  I 
> tested the loop on a
> dataset of 30,000 observations and it took 2 minutes to 
> complete, which is
> not the end of the world for the use I'll make of it.
> 
> But what escaped me in my own proposed solution below is 
> that step 2 (where
> I would use -file- to substitute a space-character for the 
> first comma)
> would itself require looping over observations (!).  I will 
> probably go with
> Nick's solution as I don't see anything else for now.  
> 

Banging my head against this once more, I wondered about 
something like 

local N = _N
forval i = 1/`N' {
	local val = naics[`i']
	local label = labelnaics[`i']
	local args `"`args' `val' "`label'""' 
} 
label def naicslab `args', modify

but `args' would get too long in Patrick's bigger 
examples. 

Nick 
n.j.cox@durham.ac.uk 
*
*   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/



© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index