2014-09-20 2 views
-1

Mes données ressemble à ceComment diminuer les niveaux d'intervalle dans R

CASE  DEGREE  INCOME SLAB 

1   Graduate  $1000-$2000 

2   High School $2000- $3000 

ainsi de suite ..

Pour la catégorie de degré I ont quatre niveaux, mais pour la dalle de revenu je 20+ niveaux. Ces 20+ niveaux sont de l'ordre de 1000 $. Je veux le diminuer pour dire 10 ou moins de l'ordre de 10000 $. comme $ 1000- $ 10000, $ 10000- $ 20000 ainsi de suite. Comment puis je faire ça? Toute aide serait appréciée.

Répondre

2

Essayez:

ori = c('$1000-$2000','$3000-$4000','$5000-$6000','$7000-$8000','$9000-$10000') 
> ddf = data.frame(ori) 
> ddf 
      ori 
1 $1000-$2000 
2 $3000-$4000 
3 $5000-$6000 
4 $7000-$8000 
5 $9000-$10000 
> 
> ddf$ori = gsub('$','',ddf$ori, fixed=T) 
> ddf 
     ori 
1 1000-2000 
2 3000-4000 
3 5000-6000 
4 7000-8000 
5 9000-10000 

ddf$min = lapply(strsplit(ori, '-'), function(x)x[1]) 
> ddf 
     ori min 
1 1000-2000 1000 
2 3000-4000 3000 
3 5000-6000 5000 
4 7000-8000 7000 
5 9000-10000 9000 
> 
> ddf$new = ifelse(ddf$min<5000, '$1000-$5000', ifelse(ddf$min<10000,'$5000-$10000','$10000-$15000')) 
> ddf 
     ori min   new 
1 1000-2000 1000 $1000-$5000 
2 3000-4000 3000 $1000-$5000 
3 5000-6000 5000 $5000-$10000 
4 7000-8000 7000 $5000-$10000 
5 9000-10000 9000 $5000-$10000 
> 
Questions connexes