使用dplyr 0.7.6中的以下代码,我尝试计算数据集中每天的变量排名。但是dplyr不能解释strtoi
group_by(CREATIONDATE_DAY)
但是排名值是在整个组中计算的,而不是在创建日的值上计算的。如图所示,由于4是16.03.2019的最高值,因此ID为24的行应排在第1位,而此特定日期的第23行应排在第2位。我的错误在哪里?
编辑:添加了所需的输出:
编辑#2:正如MrFlick指出的那样,我检查了我的dplyr版本(0.7.6),并升级到最新版本为我解决了该问题。
答案 0 :(得分:1)
似乎与另一个软件包有些冲突。如果您有活跃的lubridate
,请尝试颠倒调用软件包lubridate
和dplyr
的顺序(我已经尝试了您的示例并给出了正确的答案)。但是,您可以尝试:
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