Dplyr在对数据进行排名时不尊重组

时间:2019-04-19 15:34:37

标签: r dplyr

使用dplyr 0.7.6中的以下代码,我尝试计算数据集中每天的变量排名。但是dplyr不能解释strtoi

group_by(CREATIONDATE_DAY)

但是排名值是在整个组中计算的,而不是在创建日的值上计算的。如图所示,由于4是16.03.2019的最高值,因此ID为24的行应排在第1位,而此特定日期的第23行应排在第2位。我的错误在哪里?

enter image description here

编辑:添加了所需的输出:

enter image description here

编辑#2:正如MrFlick指出的那样,我检查了我的dplyr版本(0.7.6),并升级到最新版本为我解决了该问题。

1 个答案:

答案 0 :(得分:1)

似乎与另一个软件包有些冲突。如果您有活跃的lubridate,请尝试颠倒调用软件包lubridatedplyr的顺序(我已经尝试了您的示例并给出了正确的答案)。但是,您可以尝试:

dfMod <- dfMod %>% group_by(CREATIONDATE_DAY) %>% mutate(rank = row_number(desc(COUNT)))
> head(dfMod)
# A tibble: 6 x 4
# Groups:   CREATIONDATE_DAY [2]
  CREATIONDATE_DAY    GROUP COUNT  rank
  <dttm>              <fct> <int> <int>
1 2019-03-12 00:00:00 A         2     3
2 2019-03-12 00:00:00 B         5     1
3 2019-03-12 00:00:00 C         4     2
4 2019-03-13 00:00:00 A         4     1
5 2019-03-13 00:00:00 B         3     2
6 2019-03-13 00:00:00 C         2     3