有人能帮帮我吗?
我有A列、B列和C列,我想要获取C列的顶值(按A分组),但也要包含这些顶值的B信息
Max <-X %>% select(A,B,C) %>% group_by(A) %>% summarise(top = max(C))
但是这段代码只显示了每个唯一的A数据的顶值,所以我不知道分配给它的B值是多少。(重要的是,使group_by(A,B)
不起作用,因为它没有给出每个唯一的A值的顶值,它返回与数据库X相同的值)
发布于 2020-11-15 16:55:09
这可以通过dplyr::top_n
或? dplyr::slice_max
实现,如下所示:
library(dplyr)
mtcars %>% select(cyl, mpg, hp) %>% group_by(cyl) %>% top_n(1, hp)
#> # A tibble: 3 x 3
#> # Groups: cyl [3]
#> cyl mpg hp
#> <dbl> <dbl> <dbl>
#> 1 4 30.4 113
#> 2 6 19.7 175
#> 3 8 15 335
mtcars %>% select(cyl, mpg, hp) %>% group_by(cyl) %>% slice_max(hp)
#> # A tibble: 3 x 3
#> # Groups: cyl [3]
#> cyl mpg hp
#> <dbl> <dbl> <dbl>
#> 1 4 30.4 113
#> 2 6 19.7 175
#> 3 8 15 335
因此,在您的情况下,它应该是:
Max <-X %>% select(A,B,C) %>% group_by(A) %>% slice_max(C)
https://stackoverflow.com/questions/64842614
复制相似问题