I have a data frame with a column of values that I want to bucket (group)
into specific levels.

> str(dat)'data.frame':	3678 obs. of  39 variables:
 $ id                          : int  23 76 129 156 166 180 200 214 296 344 ...
 $ final_purchase_amount       : Factor w/ 32 levels
"\\N","1082","1109",..: 1 1 1 1 1 1 1 1 1 1 ...


So I ran the following to produce new levels, one for values from 100
to 400, 401 to 1000, and 1001+.


dat$final_purchase_amount<- NA
dat$final_purchase_amount[dat$final_purchase_amount %in%
levels(dat$final_purchase_amount)[c(8,9,11,12,13,15,16,17,18,19,20,21)]]
<- "100 to 400"
dat$final_purchase_amount[dat$final_purchase_amount %in%
levels(dat$final_purchase_amount)[c(22,23,24,25,26,27,28,29,30,31,32)]]
<- "401 to 1000"
dat$final_purchase_amount[dat$final_purchase_amount %in%
levels(dat$final_purchase_amount)[c(2,3,4,5,6,7,10,14)]] <- "1001 +"
dat$final_purchase_amount <- factor(dat$final_purchase_amount)
levels(dat$final_purchase_amount)
table(dat$final_purchase_amount)



However, this doesn't seem to produce any levels and returns the following.


> levels(dat$final_purchase_amount)character(0)



Can anyone point to what I'm doing wrong.



Thanks!


-- 
*Abraham Mathew
Statistical Analyst
www.amathew.com
720-648-0108
@abmathewks*

	[[alternative HTML version deleted]]

