Hi Community, I need to recode the original string variable ragender into numeric type and assign new values to it, namely, assigning 1 = 0 for Male and 2 = 1 for Female. But the customary code resulted in significant deviation in the appropriation of Male to Female after recoding. I did not see obvious logic errors in the coding. Any idea about it?
//----- Tab original variable ---------------
. tab ragender, m
ragender | Freq. Percent Cum.
------------+-----------------------------------
. | 11 0.04 0.04
1.Male | 12,296 48.21 48.26
2.FeMale | 1,472 5.77 54.03
2.Female | 11,725 45.97 100.00
------------+-----------------------------------
Total | 25,504 100.00
//----------encode & recode the string variable ------
//---------Obvious deviation resulted from encode & recode---------
. tab encode_r1gender, m
respondents |
' gender | Freq. Percent Cum.
------------+-----------------------------------
0 Male | 11 0.04 0.04
1 Female | 12,296 48.21 48.26
. | 13,197 51.74 100.00
------------+-----------------------------------
Total | 25,504 100.00
//----- Tab original variable ---------------
. tab ragender, m
ragender | Freq. Percent Cum.
------------+-----------------------------------
. | 11 0.04 0.04
1.Male | 12,296 48.21 48.26
2.FeMale | 1,472 5.77 54.03
2.Female | 11,725 45.97 100.00
------------+-----------------------------------
Total | 25,504 100.00
//----------encode & recode the string variable ------
Code:
encode ragender, gen(encode_r1gender) recode encode_r1gender (1=0)(2=1)(else=.) lab var encode_r1gender "respondents' gender" lab val encode_r1gender r1gender_lab1 lab def r1gender_lab1 0 "0 Male" 1 "1 Female"
//---------Obvious deviation resulted from encode & recode---------
. tab encode_r1gender, m
respondents |
' gender | Freq. Percent Cum.
------------+-----------------------------------
0 Male | 11 0.04 0.04
1 Female | 12,296 48.21 48.26
. | 13,197 51.74 100.00
------------+-----------------------------------
Total | 25,504 100.00
Comment