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   "Michael Blasnik" <mblasnik@verizon.net>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: Re: RE: RE: mapping a value from 2 variables
Date   Wed, 24 Jul 2002 15:35:46 -0400

In trying to automate value label creation from a numeric and string var,
Joly.Patrick@ic.gc.ca wants to avoid an explicit loop over n for large
datasets.  Here is one approach that I think works

gen str1 cmd=""
replace cmd="label define mylab "+string(nvar)+char(34)+svar+char(34)+"
,modify"
outsheet cmd using cmd.do, nonames noquote
drop cmd

Then you can -run cmd-

This approach just builds a string variable that has the label define
commands and uses char(34) to insert quotes.  Of course, if you have
repetitive values of nvar you should first collapse the dataset down to one
obs for each nvar


Michael Blasnik



> 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:
> >
> > local N = _N
> > forval i = 1/`N' {
> >     local val = naics[`i']
> >     local label = labelnaics[`i']
> >     label def naicslab `val' "`label'" , modify
> > }
> >
> > 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.
>
>
...



*
*   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