[R] Recode function car package erases previous values

Pancho Mulongeni p.mulongeni at namibia.pharmaccess.org
Wed Oct 24 11:17:25 CEST 2012

Hi all,
I am attempting to create a new variable based on values of other variables. The variable is called pharm. It basically takes the numeric code of 1 as yes and 0 to be No from the variable B20_C1 (a question on a survey). However, I would also like to have a level for non-respondents and these are captured in the variable nr.B20C, which is a 1 when there is a non-response on the whole group of variable B20_C1 to B20_C5. So ultimately the variable pharmacy will have three levels, 
Yes No and no resp.
See below what happens

> pharm<-as.factor(recode(B20_C1,"1='Yes';0='No'"))
> table(pharm)
 No Yes 
716   7 
> levels(pharm)<-c('No','Yes','no resp')
> table(pharm)
     No     Yes no resp 
    716       7       0 
> pharm<-as.factor(recode(nr.B20C,"1='no resp'"))
> table(pharm)
      0 no resp 
    723       6 
The recode variable just cannot seem to 'remember' I had just recoded 7 values to 'Yes' and 716 to be 'No'  and instead it assigns the level '0' which comes from nr.B20C (it has values 0 or 1). 
This inconvenient as I would like to have ultimately the following table 
     No     Yes no resp 
    716       7       6 (FROM nr.B20C where row has value 1).

Background. The variable pharm assess where you used the pharmacy to get your contraception.

Pancho Mulongeni
Research Assistant
PharmAccess Foundation
1 Fouché Street
Windhoek West
Tel:   +264 61 419 000
Fax:  +264 61 419 001/2
Mob: +264 81 4456 286

More information about the R-help mailing list