montriond
montriond

Reputation: 15

Stata: append two datasets, retain value labels

I'm using Stata14 and I'm trying to append two survey datasets that have ~200 variables with same names but different values and value labels. I would like to do the appending so that value labels are retained from the dataset 'on disk'.

Here is an example describing my problem:

Variable in dataset 1 (master):

value - label
1 - yes
2 - no

Same variable in dataset 2 (appended to master):

value - label
1 - yes absolutely
2 - no definitely not
3 - maybe
4 - don't know

Result with append using "dataset 2.dta"

value - label
1 - yes
2 - no
3 - 3
4 - 4

Desired result:

value - label
1 - yes
2 - no
3 - maybe
4 - don't know

Is there any way to do this directly using append? If not, any suggestions on doing the task efficiently are most welcome.

Upvotes: 0

Views: 2322

Answers (2)

Nick Cox
Nick Cox

Reputation: 37208

You want to make value labels consistent, which is sensible, fine and easy to do.

When you have appended all the datasets, you then overwrite any value label assignment with a quick

label define whatever 1 yes 2 no 3 maybe 4 "don't know"
label val myvar whatever 

with a , modify on the first if a set of value labels with that name already exists.

It's a task to do late. It doesn't need to be fixed before or during the append, and it can most easily be done at that point.

Naturally, this is tedious for several variables, but it's not difficult to understand. Furthermore, even if append were able to take instructions on which labels to use, you would still have to spell that out. In your example, the value labels you want are not actually in use in any of the datasets. So, there will be some inevitable pain. There is a mess to sort out and what the fix is can't be fully automated because it depends on your ideas of what labels are best.

Upvotes: 1

ℕʘʘḆḽḘ
ℕʘʘḆḽḘ

Reputation: 19375

in short, the answer is

NOPE

so you have to be smart. Try to use this trick http://www.stata.com/support/faqs/data-management/keeping-same-variable-with-collapse/ where you get a local copy of the labels that you will be attaching to the full dataset afterwards.

Upvotes: 0

Related Questions