Generating categorical variable

242 views Asked by At

In my Stata data set, the "alternative" variable consists of 4 modes including pier, private, beach and charter.

I want to generate new variable y as follows:

We collapse the model to three alternatives and order the alternatives, with y = 0 if fishing from a pier or beach, y = 1 if fishing from a private boat and y = 2 if fishing from a charter.

I tried to do this by looking at thetas in this website: stata tips but I can't solve it.

Note: I don't understand from the dataset. And I get error related to type of the variable while generating variable I download the dataset from the website https://www.stata-press.com/data/musr/musr.zip The data name is mus15data

The variables in the dataset is as follows:

enter image description here

Here, "mode" variable is alternatives.

1

There are 1 answers

0
Nick Cox On BEST ANSWER

If I understand correctly, this is

gen y = 0 if inlist(1, dbeach, dpier)
* gen y = 0 if dbeach == 1 | dpier == 1 
replace y = 1 if dprivate == 1 
replace y = 2 if dcharter == 1 

Many other solutions are possible. Here is one more.

gen y = cond(inlist(1, dbeach, pier), 0, 2 * (dcharter == 1) + (dprivate == 1))

If all those variables are only ever 0 or 1 (and never missing) some simplifications are possible.

Go only with code you find clear and can explain to others.

I am assuming that pier, beach, private, charter are mutually exclusive. I've not checked with the dataset.