如何使用Dplyr的Summarize以及which()查找最小值/最大值

dreww2

我有以下数据:

Name <- c("Sam", "Sarah", "Jim", "Fred", "James", "Sally", "Andrew", "John", "Mairin", "Kate", "Sasha", "Ray", "Ed")
Age <- c(22,12,31,35,58,82,17,34,12,24,44,67,43)
Group <- c("A", "B", "B", "B", "B", "C", "C", "D", "D", "D", "D", "D", "D") 
data <- data.frame(Name, Age, Group)

我想用dplyr

(1)按“组”对数据进行分组(2)显示每个组中的最小和最大年龄(3)显示具有最小和最大年龄的人的姓名

以下代码执行此操作:

data %>% group_by(Group) %>%
     summarize(minAge = min(Age), minAgeName = Name[which(Age == min(Age))], 
               maxAge = max(Age), maxAgeName = Name[which(Age == max(Age))])

哪个效果很好:

  Group minAge minAgeName maxAge maxAgeName
1     A     22        Sam     22        Sam
2     B     12      Sarah     58      James
3     C     17     Andrew     82      Sally
4     D     12     Mairin     67        Ray

但是,如果有多个最小值或最大值,我就会遇到问题:

Name <- c("Sam", "Sarah", "Jim", "Fred", "James", "Sally", "Andrew", "John", "Mairin", "Kate", "Sasha", "Ray", "Ed")
Age <- c(22,31,31,35,58,82,17,34,12,24,44,67,43)
Group <- c("A", "B", "B", "B", "B", "C", "C", "D", "D", "D", "D", "D", "D") 
data <- data.frame(Name, Age, Group)

> data %>% group_by(Group) %>%
+   summarize(minAge = min(Age), minAgeName = Name[which(Age == min(Age))], 
+             maxAge = max(Age), maxAgeName = Name[which(Age == max(Age))])
Error: expecting a single value

我正在寻找两种解决方案:

(1)显示哪个最小或最大名称无关紧要,仅显示一个(即找到的第一个值)(2)如果存在“联系”,则显示所有最小值和最大值

如果不清楚,请让我知道,谢谢!

阴影

您可以使用which.minwhich.max获取第一个值。

data %>% group_by(Group) %>%
  summarize(minAge = min(Age), minAgeName = Name[which.min(Age)], 
            maxAge = max(Age), maxAgeName = Name[which.max(Age)])

要获取所有值,请使用例如粘贴适当的collapse参数。

data %>% group_by(Group) %>%
  summarize(minAge = min(Age), minAgeName = paste(Name[which(Age == min(Age))], collapse = ", "), 
            maxAge = max(Age), maxAgeName = paste(Name[which(Age == max(Age))], collapse = ", "))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Comparable查找最大值/最小值

来自分类Dev

使用awk查找最小值和最大值?

来自分类Dev

使用dplyr分组时如何计算均值,最小值和最大值?

来自分类Dev

如何使用numpy在可变长度数组中查找最小值/最大值?

来自分类Dev

在Python中查找列表的最小值,最大值

来自分类Dev

查找函数的最小值和最大值

来自分类Dev

在.json中查找最大值和最小值

来自分类Dev

awk查找数组的最小值和最大值

来自分类Dev

查找局部最小值和局部最大值

来自分类Dev

在.json中查找最大值和最小值

来自分类Dev

查找矩阵的最大值和最小值

来自分类Dev

Excel公式查找最大值/最小值

来自分类Dev

查找连续行的最小值/最大值

来自分类Dev

Excel:使用什么公式返回一组查找值的最小值或最大值?

来自分类Dev

如何使用SPSS查找所有变量的最大值和最小值并在表格中显示?

来自分类Dev

如何使用类似名称对列数据进行分组以查找总和、最小值和最大值?

来自分类Dev

如何在不使用地图/SQL 的情况下在列表中查找最大值和最小值?

来自分类Dev

如何根据条件打印最小值和最大值-dplyR

来自分类Dev

从数组中查找最小值和最大值,最小值始终为0

来自分类Dev

从数组中查找最小值和最大值,最小值始终为0

来自分类Dev

如何在numpy数组中逐轴查找最小值/最大值

来自分类Dev

如何在结构数组中查找最大值/最小值

来自分类Dev

如何在collections.defaultdict中查找最小值和最大值

来自分类Dev

如何汇总集合并查找最小值/最大值

来自分类Dev

在一次传递数据中使用pyspark查找最小值/最大值

来自分类Dev

使用半已知键在ArrayList的HashMap中查找最大值和最小值-Java

来自分类Dev

使用迭代查找最大值和最小值时的Python TypeError

来自分类Dev

查找用户输入的最小值和最大值,而无需使用数组

来自分类Dev

使用ARM NEON指令查找数组的最小值和最大值

Related 相关文章

  1. 1

    使用Comparable查找最大值/最小值

  2. 2

    使用awk查找最小值和最大值?

  3. 3

    使用dplyr分组时如何计算均值,最小值和最大值?

  4. 4

    如何使用numpy在可变长度数组中查找最小值/最大值?

  5. 5

    在Python中查找列表的最小值,最大值

  6. 6

    查找函数的最小值和最大值

  7. 7

    在.json中查找最大值和最小值

  8. 8

    awk查找数组的最小值和最大值

  9. 9

    查找局部最小值和局部最大值

  10. 10

    在.json中查找最大值和最小值

  11. 11

    查找矩阵的最大值和最小值

  12. 12

    Excel公式查找最大值/最小值

  13. 13

    查找连续行的最小值/最大值

  14. 14

    Excel:使用什么公式返回一组查找值的最小值或最大值?

  15. 15

    如何使用SPSS查找所有变量的最大值和最小值并在表格中显示?

  16. 16

    如何使用类似名称对列数据进行分组以查找总和、最小值和最大值?

  17. 17

    如何在不使用地图/SQL 的情况下在列表中查找最大值和最小值?

  18. 18

    如何根据条件打印最小值和最大值-dplyR

  19. 19

    从数组中查找最小值和最大值,最小值始终为0

  20. 20

    从数组中查找最小值和最大值,最小值始终为0

  21. 21

    如何在numpy数组中逐轴查找最小值/最大值

  22. 22

    如何在结构数组中查找最大值/最小值

  23. 23

    如何在collections.defaultdict中查找最小值和最大值

  24. 24

    如何汇总集合并查找最小值/最大值

  25. 25

    在一次传递数据中使用pyspark查找最小值/最大值

  26. 26

    使用半已知键在ArrayList的HashMap中查找最大值和最小值-Java

  27. 27

    使用迭代查找最大值和最小值时的Python TypeError

  28. 28

    查找用户输入的最小值和最大值,而无需使用数组

  29. 29

    使用ARM NEON指令查找数组的最小值和最大值

热门标签

归档