Как разделить при ранжировании в определенном столбце?

Все:

У меня есть фрейм данных, подобный следующему. Я знаю, что могу сделать такой глобальный порядок ранжирования:

dt <- data.frame(
    ID = c('A1','A2','A4','A2','A1','A4','A3','A2','A1','A3'),
    Value = c(4,3,1,3,4,6,6,1,8,4)
);
> dt
   ID Value
1  A1     4
2  A2     3
3  A4     1
4  A2     3
5  A1     4
6  A4     6
7  A3     6
8  A2     1
9  A1     8
10 A3     4
dt$Order <- rank(dt$Value,ties.method= "first")
> dt
   ID Value Order
1  A1     4     5
2  A2     3     3
3  A4     1     1
4  A2     3     4
5  A1     4     6
6  A4     6     8
7  A3     6     9
8  A2     1     2
9  A1     8    10
10 A3     4     7

Но как я могу установить порядок конкретный идентификатор вместо глобального порядка ранжирования. Как я могу это сделать? В T-SQL это можно сделать с помощью следующего синтаксиса:

RANK() OVER ( [ < partition_by_clause > ] < order_by_clause > )

Есть идеи?

14
задан Chris Gerken 3 September 2012 в 14:55
поделиться