All:Cách phân vùng khi xếp hạng trên một cột cụ thể?
Tôi có một khung dữ liệu như follow.I biết tôi có thể làm một trật tự thứ hạng toàn cầu như thế này:
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
Nhưng làm thế nào tôi có thể thiết lập một trật tự thứ hạng cho một ID riêng thay vì thứ tự xếp hạng toàn cầu. Làm thế nào tôi có thể làm được điều này? Trong T-SQL, chúng ta có thể thực hiện việc này theo cú pháp sau:
RANK() OVER ([ <partition_by_clause> ] <order_by_clause>)
Bất kỳ ý tưởng nào?
Cảm ơn bạn, Tyler. – RobinMin