2015-10-21 2 views
0

У меня есть данные с ключом и соотношением значений первичными как следующегоСгруппированный рейтинг в R

2.243164164 
1.429242413 
2.119270714 
3.013427143 
1.208634972 
1.208634972 
1.23657632 
2.212136028 
2.168583297 
2.151961216 
1.159886063 
1.234106444 
1.694206176 
1.401425329 
5.210125578 
1.215267806 
1.089189869 

Я хочу, чтобы добавить столбец ранга, группы этих отношений в скажет 3 бункеров. Функциональность аналогична кода с.а.са:

PROC RANK DATA = TAB1 GROUPS = &NUM_BINS 
+1

Мы можем использовать '? Cut' и указать' breaks = 3' – akrun

+0

Каким будет ожидаемый результат? –

+1

Yep @akrun solution is great: try 'data.frame (Value = values, Bin = as.integer (cut (values, breaks = 3)))' – digEmAll

ответ

0

я сделал следующее: Преобразования вектора кадра данных. Создать переменную Ранг:

test2$rank<-rank(test2$test) 
> test2 
    test rank 
1 2.243164 15.0 
2 1.429242 9.0 
3 2.119271 11.0 
4 3.013427 16.0 
5 1.208635 3.5 
6 1.208635 3.5 
7 1.236576 7.0 
8 2.212136 14.0 
9 2.168583 13.0 
10 2.151961 12.0 
11 1.159886 2.0 
12 1.234106 6.0 
13 1.694206 10.0 
14 1.401425 8.0 
15 5.210126 17.0 
16 1.215268 5.0 
17 1.089190 1.0 

Определить функцию для преобразования в процентиль ряды, а затем определить пр как то процентили.

percent.rank<-function(x) trunc(rank(x)/length(x)*100) 
test3<-within(test2,pr<-percent.rank(rank)) 

Затем я создал бункеры на том факте, что вы хотели 3 из них.

test3$bins <- cut(test3$pr, breaks=c(0,33,66,100), labels=c("0-33","34-66","66-100")) 

     test x rank pr bins 
1 2.243164 15.0 15.0 88 66-100 
2 1.429242 9.0 9.0 52 34-66 
3 2.119271 11.0 11.0 64 34-66 
4 3.013427 16.0 16.0 94 66-100 
5 1.208635 3.5 3.5 20 0-33 
6 1.208635 3.5 3.5 20 0-33 
7 1.236576 7.0 7.0 41 34-66 
8 2.212136 14.0 14.0 82 66-100 
9 2.168583 13.0 13.0 76 66-100 
10 2.151961 12.0 12.0 70 66-100 
11 1.159886 2.0 2.0 11 0-33 
12 1.234106 6.0 6.0 35 34-66 
13 1.694206 10.0 10.0 58 34-66 
14 1.401425 8.0 8.0 47 34-66 
15 5.210126 17.0 17.0 100 66-100 
16 1.215268 5.0 5.0 29 0-33 
17 1.089190 1.0 1.0 5 0-33 

Это работает для вас?