Comment partitionner lors du classement sur une colonne particulière?

Tous:

J'ai un bloc de données comme la suivre.Je sais que je peux faire global rang de commande comme ceci:

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

Mais comment puis-je définir un ordre de classement pour un ID particulier au lieu d'un ordre mondial. Comment puis-je obtenir ce fait? En T-SQL, nous pouvons le faire que la syntaxe suivante:

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

Une idée?

source d'informationauteur RobinMin