Has anyone written a routine to define a value label mapping based on two
variables (one numeric, one string)? Several searches using findit did not
turn up anything. Normally, I wouldn't bother asking but I would find it
surprising if no one had tried to automate this type of task before.
For instance, I have many data files comprising industrial classification
codes which I routinely merge to data for various projects. One such
example is my file for the NAICS (North American Industry Classification
System) Codes, which contains the numerical variable _naics_ and string
variable _labelnaics_
. list
naics labelnaics
1. 11 Agriculture, Forestry, Fishing and Hunting
2. 111 Crop Production
3. 1111 Oilseed and Grain Farming
4. 11111 Soybean Farming
5. 111110 Soybean Farming
6. 11112 Oilseed (except Soybean) Farming
7. 111120 Oilseed (except Soybean) Farming
8. 11113 Dry Pea and Bean Farming
...
I would like to define a value label such that each value of _naics_ would
map to the corresponding value of _labelnaics_. Encode will not do the
trick here since it would be equivalent to:
label define naicslab 1 "Agriculture, Forestry, Fishing and Hunting"
label define naicslab 2 "Crop Production", add
label define naicslab 3 "Oilseed and Grain Farming", add
...
I could write my own .ado to create a do file similar to those generated by
-label save ...-. This could be done by:
- sending the data to a comma-delimited file via -outsheet-
- using the -file-command, replacing the first comma by a space character
- prefixing each line by -label define-
- suffixing by -, modify-
But before I do that, has anyone seen such an .ado?
Patrick Joly
[email protected]
[email protected]
*
* 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/