首页 > 解决方案 > 如何在 dplyr 中找到最小值和最大值?

问题描述

  1. 我知道每个人的得分总和。
  2. 我需要知道:一个人可以拥有的最低分数是多少。一个人可以拥有的最大分数是多少。

我试过的:

min_and_max <- dataset %>%
 group_by(person) %>%
 dplyr::filter(min(sum(points, na.rm = T))) %>%
 distinct(person) %>%
 pull()
 min_and_max

我的数据集:

id   person   points
201  rt99   NA
201  rt99   3
201  rt99   2
202  kt     4
202  kt     NA
202  kt     NA
203  rr     4
203  rr     NA
203  rr     NA
204  jk     2
204  jk     2
204  jk     NA
322  knm3   5
322  knm3   NA
322  knm3   3
343  kll2   2
343  kll2   1
343  kll2   5
344  kll    NA
344  kll    7
344  kll    1

标签: rdplyr

解决方案


这是 data.table 解决方案 -

dataset[, min_points := min(points, na.rm = T), by = person]
dataset[, max_points := max(points, na.rm = T), by = person]

由于我没有您的数据,因此我无法测试此代码,但它应该可以正常工作。


推荐阅读