recode                package:epicalc                R Documentation

_R_e_c_o_d_e _v_a_r_i_a_b_l_e(_s)

_D_e_s_c_r_i_p_t_i_o_n:

     Change value(s) of variable(s) in the default data frame

_U_s_a_g_e:

     recode (vars, old.value, new.value)  

_A_r_g_u_m_e_n_t_s:

    vars: a variable or variables with the same recoding scheme

old.value: original value or condition

new.value: new value for all variables listed

_D_e_t_a_i_l_s:

     'recode' works only with the default data frame, '.data'. It is
     very useful for recoding missing values but can also be used for
     other purposes.

     'vars' can be a single variable or a list of variables in the
     format of list(var1, var2, var3) or c(var1, var2, var3), which
     will be recoded simultaneously under the same scheme.

     The argument 'old.value' can be the original value or a condition
     for recoding regardless of the old value.

     Changing the value label of a variable's levels can be done with
     'levels(var)[levels(var)=="old name"] <- "new name"'. In this
     case, 'recode' changes several factors using the same scheme.

_A_u_t_h_o_r(_s):

     Virasakdi Chongsuvivatwong <cvirasak@medicine.psu.ac.th>

_S_e_e _A_l_s_o:

     'replace', 'lookup'

_E_x_a_m_p_l_e_s:

     age       <- c( 37,  99,  24,  33,  31,  30,  26,  25) 
     systolic  <- c(120, 120, 110, 120, 130, 120, 888, 999) 
     diastolic <- c( 80,  80,  70,  80,  70, 999,  70,  60)
     sick      <- c(  1,   2,   2,   1,   2,   2,   2,   NA)
     treated   <- c(  2,   1,   2,   2,   1,   2,   2,   1)
     yesno     <- c("Y", "N")
     sick      <- factor(sick, labels=yesno)
     treated   <- factor(treated, labels=yesno)
     .data     <- data.frame(age, systolic, diastolic, sick, treated)
     attach(.data, warn.conflicts=FALSE)
     pack()
     # 'pack() integate all variables into .data
     # to avoid confusion with free vectors.

     # The above lines generate a hypothetical data frame. 
     # In reality, one just exploits 'use("datafile")', if the "datafile" exists.
     .data
     summ()
     recode(age, old.value=99, new.value=NA)
     recode(vars=c(systolic, diastolic), 999, NA) # The value 888 is not recoded.
     recode(systolic, systolic > 250, NA)
     summ()
     table(sick, treated)
     recode(vars=c(sick, treated), old.value="Y", new.value="yes")
     table(sick, treated)

     # Recode both sick and treated to "N" if sick status is missing. 
     recode(vars=c(sick,treated), is.na(sick), new.value="N") 
     table(sick, treated) 

