gpt4 book ai didi

r - 分组并保留在不同列中具有最大值的整行

转载 作者:行者123 更新时间:2023-12-04 08:55:04 25 4
gpt4 key购买 nike

我有一个 df 看起来像:

# Groups:   telefono1 [360]
nombre telefono1 telefono2 ads_ao ads_am ads_mas ads_ma total_price_ao total_price_am total_price_mas~ total_price_ma
<chr> <chr> <lgl> <chr> <dbl> <chr> <chr> <chr> <dbl> <chr> <chr>
1 CRIST~ 60***0400 NA 0 0 0 0 0 0 0 0
2 CRIST~ 60***0400 NA 0 61 0 0 0 0 0 0
3 CRIST~ 60***0400 NA 0 0 0 0 0 0 0 0
4 DIEGO~ 60***0844 NA 0 0 0 0 0 0 0 0
5 Diego 60***0844 FALSE 0 0 0 2 0 0 0 22500
6 TALLE~ 60***4848 NA 2 0 0 0 59000 0 0 0
7 TALLE~ 60***4848 NA 0 311 0 0 0 0 0 0
8 Rub?n 60***4848 FALSE 0 0 0 2 0 0 0 59000
我需要按 Telefono1 分组,然后保留整个行,其中“ads_ao、ads、am、ads_mas 和 ads_ma”列的值是最大值。
在示例中,正确的解决方案是第 #2、#5 和 #7 行,因为它们是按 Telefono1 分组的在上述列中具有最大值的解决方案。
我用 dplyr 试过了
  group_by(telefono1) %>%
mutate(max_value = max(ads_ao, ads_am, ads_mas, ads_ma)) %>%
ungroup()
但是使用这种方法,我会在所有行中获得一个具有最大值的新变量,然后我不能使用 top_n() 来获取具有最大值的行,因为它们都是相等的。
请问有人知道有什么解决办法吗?谢谢!!

最佳答案

dplyrpurrr选项可以是:

df %>%
group_by(telefono1) %>%
slice_max(pmap_dbl(across(starts_with("ads")), max), 1)

nombre telefono1 telefono2 ads_ao ads_am ads_mas ads_ma total_price_ao total_price_am total_price_mas. total_price_ma
<chr> <int> <lgl> <int> <int> <int> <int> <int> <int> <int> <int>
1 CRIST~ 600040400 NA 0 61 0 0 0 0 0 0
2 Diego 600530844 FALSE 0 0 0 2 0 0 0 22500
3 TALLE~ 600674848 NA 0 311 0 0 0 0 0 0

关于r - 分组并保留在不同列中具有最大值的整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63874323/

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