r - 在 DATE 和 ID 之后对变量进行排名
问题描述
我有下表:
ID OP DATE
1 1 A 2001-01-02
2 1 B 2015-04-25
3 2 A 2000-04-01
4 3 D 2014-04-07
5 4 C 2012-12-01
6 4 A 2005-06-16
7 4 D 2009-01-20
8 4 B 2009-01-20
9 5 A 2010-10-10
10 5 B 2003-11-09
11 6 B 2004-01-09
d <- wrapr::build_frame( "ID" , "OP", "DATE" | 1 , "A" , "2001-01-02" | 1 , "B" , "2015-04-25" | 2 , "A" , "2000-04-01" | 3 , "D" , "2014-04-07" | 4 , "C" , "2012-12-01" | 4 , "A" , "2005-06-16" | 4 , "D" , "2009-01-20" | 4 , "B" , "2009-01-20" | 5 , "A" , "2010-10-10" | 5 , "B" , "2003-11-09" | 6 , "B" , "2004-01-09" )
我想这样排序:
ID OP DATE RANK
1 1 A 2001-01-02 1
2 1 B 2015-04-25 2
3 2 A 2000-04-01 1
4 3 D 2014-04-07 1
5 4 A 2005-06-16 1
6 4 D 2009-01-20 2
7 4 B 2009-01-20 2
8 4 C 2012-12-01 3
9 5 B 2003-11-09 1
10 5 B 2010-10-10 2
11 6 B 2004-01-09 1
也就是说,每个 OP 都应该在 ID 下分组,并按 DATE 排序,然后按 DATE 排序。
最好的问候,汉斯
解决方案
我们可以用dense_rank
library(dplyr)
d %>%
group_by(ID) %>%
mutate(Rank = dense_rank(DATE))
推荐阅读
- typescript - 打字稿:输入数据
= 结果 - elasticsearch - 异常检测 Kibana 插件的配置
- npm - npm 奇怪的 bug,钛 Appc 合金
- sql-server - 通过 HAproxy 使用 Powershell 连接到 MSSQL
- c++ - 如何将一个范围内的值插入到另一个范围内
- python - 启动使用 py2app 构建的应用程序时出现“ValueError:源代码字符串不能包含空字节”结果
- javascript - Angular:从父组件更新子布尔组件
- apache-kafka - 无法在 kafka 中为批处理模式设置错误处理程序
- javascript - React Router Link 正在更改 URL,但组件保持不变
- python-3.x - 使用扭曲的 SSL4ClientEndpoint 而不验证服务器证书