如何降低R中的间隔水平

时间:2014-09-20 12:41:26

标签: r

我的数据看起来像这样

CASE        DEGREE       INCOME SLAB

1          Graduate       $1000-$2000

2          High School   $2000- $3000 

等......

对于学位类别我有四个级别,但对于收入平板我有20多个级别。这20个级别的价格在1000美元左右。我希望将它减少到10或更低,在10000美元的范围内。比如$ 1000- $ 10000,$ 10000- $ 20000等等。我怎样才能做到这一点?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

尝试:

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
>