# [R] Need a more efficient way to implement this type of logic in R

Walter Anderson wandrson01 at gmail.com
Wed Apr 6 22:02:29 CEST 2011

```  I have cobbled together the following logic.  It works but is very
slow.  I'm sure that there must be a better r-specific way to implement
this kind of thing, but have been unable to find/understand one.  Any
help would be appreciated.

hh.sub <- households[c("HOUSEID","HHFAMINC")]
for (indx in 1:length(hh.sub\$HOUSEID)) {
if ((hh.sub\$HHFAMINC[indx] == '01') | (hh.sub\$HHFAMINC[indx] == '02')
| (hh.sub\$HHFAMINC[indx] == '03') | (hh.sub\$HHFAMINC[indx] == '04') |
(hh.sub\$HHFAMINC[indx] == '05'))
hh.sub\$CS_FAMINC[indx] <- 1 # Less than \$25,000
if ((hh.sub\$HHFAMINC[indx] == '06') | (hh.sub\$HHFAMINC[indx] == '07')
| (hh.sub\$HHFAMINC[indx] == '08') | (hh.sub\$HHFAMINC[indx] == '09') |
(hh.sub\$HHFAMINC[indx] == '10'))
hh.sub\$CS_FAMINC[indx] <- 2 # \$25,000 to \$50,000
if ((hh.sub\$HHFAMINC[indx] == '11') | (hh.sub\$HHFAMINC[indx] == '12')
| (hh.sub\$HHFAMINC[indx] == '13') | (hh.sub\$HHFAMINC[indx] == '14') |
(hh.sub\$HHFAMINC[indx] == '15'))
hh.sub\$CS_FAMINC[indx] <- 3 # \$50,000 to \$75,000
if ((hh.sub\$HHFAMINC[indx] == '16') | (hh.sub\$HHFAMINC[indx] == '17'))
hh.sub\$CS_FAMINC[indx] <- 4 # \$75,000 to \$100,000
if ((hh.sub\$HHFAMINC[indx] == '18'))
hh.sub\$CS_FAMINC[indx] <- 5 # More than \$100,000
if ((hh.sub\$HHFAMINC[indx] == '-7') | (hh.sub\$HHFAMINC[indx] == '-8')
| (hh.sub\$HHFAMINC[indx] == '-9'))
hh.sub\$CS_FAMINC[indx] = 0
}

```