I have a data set that includes variables on individual's district (where a person lives) and occupation. I am trying to generate a new variable that tells me the occupation shares by district; i.e. if there are 10 people in the 1st district and 3 are farmers, I want the new variable created to say 0.3 for everyone that is a farmer in that district. Thus far I have tried:

bysort district: tab occupation

however, as there are over 600 districts in the sample, it would be very labor intensive to enter all the frequencies by hand. I have also tried

egen freq=pc(occupation), by(district) prop

but this does not return that correct proportions.

I would really appreciate help with this. Thanks!