我的数据看起来像这样
CASE DEGREE INCOME SLAB
1 Graduate $1000-$2000
2 High School $2000- $3000
等......
对于学位类别我有四个级别,但对于收入平板我有20多个级别。这20个级别的价格在1000美元左右。我希望将它减少到10或更低,在10000美元的范围内。比如$ 1000- $ 10000,$ 10000- $ 20000等等。我怎样才能做到这一点?任何帮助将不胜感激。
答案 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
>