我有一个如下所示的数据集:
Name Month
A 1
A 7
A 7
A 4
A 3
A 11
A 12
B 5
B 6
B 12
B 4
B 9
B 12
B 10
我想计算月份的排名并按名称分组。 所以我希望它看起来像这样。
Name Month Count
A 1 1
A 7 4
A 7 5
A 4 2
A 3 3
A 11 6
A 12 7
B 5 2
B 6 3
B 12 6
B 4 1
B 9 4
B 12 7
B 10 5
我试图在R中这样做,我真的想使用dplyr。 有什么建议吗?
修改 我没有提到我希望即使有重复,也会增加排名。我更新了数据以反映同样的事情。
答案 0 :(得分:2)
正如评论中提到的那样,您应该管道group_by
和一些排名功能。只有提供所需输出的函数为row_number
。
所以我觉得它应该是这样的:
Name = c(rep('A', 7), rep('B', 7))
Month = c(1, 7, 7, 4, 3, 11, 12, 5, 6, 12, 4, 9, 12, 10)
Data = data.frame(Name, Month)
library(dplyr)
Data %>% group_by(Name) %>% mutate(Count = row_number(Month))