Assuming that the number of levels is limited (as in your example) a very easy solution might be the following
IncomeRange <- c("$25,000-49,000","$50,000-74,999",
"Not displayed","$25,000-49,000", "$100,000+",
"$100,000+","$75,000-99,999")
df <- data.frame(IncomeRange)
# IncomeRange only has 5 levels
levels(df$IncomeRange)
[1] "$100,000+" "$25,000-49,000" "$50,000-74,999"
[4] "$75,000-99,999" "Not displayed"
df$IncomeLowerRange<-factor(df$IncomeRange,
labels =c(100000,25000,50000,75000,NA))
df$IncomeUpperRange<-factor(df$IncomeRange,
labels =c(250000,49000,74999,99999,NA))
Output
IncomeRange IncomeLowerRange IncomeUpperRange
1 $25,000-49,000 25000 49000
2 $50,000-74,999 50000 74999
3 Not displayed <NA> <NA>
4 $25,000-49,000 25000 49000
5 $100,000+ 1e+05 250000
6 $100,000+ 1e+05 250000
7 $75,000-99,999 75000 99999