gpt4 book ai didi

r - 如何在 dplyr 中查找组中前 N 个降序值

转载 作者:行者123 更新时间:2023-12-02 20:35:21 25 4
gpt4 key购买 nike

我在 R 中有以下数据框

  Serivce     Codes
ABS RT
ABS RT
ABS TY
ABS DR
ABS DR
ABS DR
ABS DR
DEF RT
DEF RT
DEF TY
DEF DR
DEF DR
DEF DR
DEF DR
DEF TY
DEF SE
DEF SE

我想要的是按降序排列的服务明智代码计数

  Serivce     Codes    Count
ABS DR 4
ABS RT 2
ABS TY 1
DEF DR 4
DEF RT 2
DEF TY 2

我正在 r 中执行以下操作

df%>% 
group_by(Service,Codes) %>%
summarise(Count = n()) %>%
top_n(n=3,wt = Count) %>%
arrange(desc(Count)) %>%
as.data.frame()

但是,它并没有给我想要的东西。

最佳答案

我们可以尝试使用count/arrange/slice

df1 %>% 
count(Service, Codes) %>%
arrange(desc(n)) %>%
group_by(Service) %>%
slice(seq_len(3))
# A tibble: 6 x 3
# Groups: Service [2]
# Service Codes n
# <chr> <chr> <int>
#1 ABS DR 4
#2 ABS RT 2
#3 ABS TY 1
#4 DEF DR 4
#5 DEF RT 2
#6 DEF SE 2
<小时/>

在OP的代码中,我们也需要按“Service”进行排列。正如@Marius 在评论中所说,如果存在平局,top_n 将包含更多行数。一种选择是使用“Service”和 slice 进行第二次分组(如上所示),或者在分组之后,我们可以过滤

df1 %>% 
group_by(Service,Codes) %>%
summarise(Count = n()) %>%
top_n(n=3,wt = Count) %>%
arrange(Service, desc(Count)) %>%
group_by(Service) %>%
filter(row_number() <=3)

关于r - 如何在 dplyr 中查找组中前 N 个降序值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45365484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com