对于数据:
Id res
1 9
1 8
1 8
1 6
1 5
1 4
2 6
2 6
2 0
2 0
2 0
2 0
Run Code Online (Sandbox Code Playgroud)
我想要每组前四名.我用的时候
dat %>% group_by(Id) %>%
top_n(4,res)
Run Code Online (Sandbox Code Playgroud)
我明白了
Id res
1 9
1 8
1 8
1 6
2 6
2 6
2 0
2 0
2 0
2 0
Run Code Online (Sandbox Code Playgroud)
这里需要一种过滤方法.什么是适当的过滤逻辑,所以我只得到前四行(允许绑定)
据我所知,top_n如果关系会返回更多行.
也许这有帮助吗?
dat %>% group_by(Id) %>% arrange(desc(res)) %>% filter(row_number()<=4)
Id res
1 1 9
2 1 8
3 1 8
4 1 6
5 2 6
6 2 6
7 2 0
8 2 0
Run Code Online (Sandbox Code Playgroud)