Все:
У меня есть кадр данных, подобный следующему. Я знаю, что могу сделать глобальный порядок ранжирования следующим образом:
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 > )
Есть идеи?