如何在Hash R中找到最大值的键?

学术用户

我有一个类似于示例哈希,并使用哈希包创建了此哈希

如何返回R中最大值的键?

输入哈希表:

h<-hash( keys=c(1,4,5,6),values=c(30,25,25,30) )
 # <hash> containing 3 key-value pair(s).
 #  1 : 30
 #  4 : 25 
 # 5 : 25
 # 6 : 30
棕褐色

完全披露:我编写并维护了该hash程序包。

除非您具有包含许多键值对的散列并且需要性能,否则带有名称的标准R向量可能是一个更好的解决方案。这是一个例子:

v <- c(a = 5, b = 2, c = 3, d = 5)
names( v[ v==max(v) ] )

本地R向量的表现将优于散列,直到结构增长到超过200个键值对为止。(自从我对散列,向量和列表查找性能进行基准测试以来已经有一段时间了)。

如果哈希适合解决方案,则@bergant的答案将解决OP的问题,尽管请理解这是相当危险的。将哈希转换为列表然后使用会unlist忽略以下事实:哈希值不限于标量/原子值。它们可以是任何R对象。考虑:

 > hash(a = 1:5, b = 2, c = 3, d=5)
 <hash> containing 4 key-value pair(s).
 a : 1 2 3 4 5
 b : 2
 c : 3
 d : 5

您可以确定这是否对您的应用程序有问题。

一种更简单,性能更高且更通用的方法是使用“值”功能。在所有值都是标量/原子值的简单情况下,这与@bergant的解非常相似。

H <- hash(a = 5, b = 2, c = 3, d = 5)
val <- values(H)     # Compare to `unlist(as.list(H))`
names( val[ val == max(val) ] )

由于值返回的是命名列表而不是未列出的列表,因此我们可以采用更通用的解决方案,因为我们可以从每个键值对中选择一个要比较的值:

H <- hash(a = 1:5, b = 2, c = 3, d=5)
val <- values(H)

# Alternate 1: Compare min from each value
val <- sapply(val, max )

# Alternate 2: Compare first element from each value 
# val <- sapply(val, function(x) x[[1]])

names( val[ val == max(val) ] )

希望对您有所帮助。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从列中找到最大值

来自分类Dev

如何从字典中找到最大值?

来自分类Dev

如何从结构中找到最大值?

来自分类Dev

如何在r的数据框中找到数字wrt的最大值和最小值?

来自分类Dev

如何在图像中找到局部最大值

来自分类Dev

如何在Swift对象数组中找到最大值?

来自分类Dev

如何在RDD对中找到最大值?

来自分类Dev

如何在Sympy中找到函数的最大值?

来自分类Dev

如何在numpy数组列中找到最大值?

来自分类Dev

如何在Swift字典中找到最大值?

来自分类Dev

如何在numpy数组列中找到最大值?

来自分类Dev

如何在字符串中找到最大值?

来自分类Dev

如何在.txt文件中找到最大值?

来自分类Dev

如何在数组中找到最大值

来自分类Dev

如何在多维数组中找到最大值

来自分类Dev

如何在numpy数组中找到对应的最大值

来自分类Dev

如何在R中的数据框中找到列的最大值?

来自分类Dev

如何在SQL中找到具有多个最大值的组的最大值?

来自分类Dev

如何从整数列表中找到最大值

来自分类Dev

如何使用 LINQ 在列表中找到最大值?

来自分类Dev

如何在R中的栅格堆栈中找到第二个最大值和相应的图层名称

来自分类Dev

如何从 R 中跨多个数据帧的公共列中找到最大值/最小值

来自分类Dev

如何在XML文件中找到属性值的最大值?

来自分类Dev

Python:如何在前10个值的列表中找到最大值?

来自分类Dev

如何在列表中找到所有局部最大值和最小值

来自分类Dev

如何在postgres中找到与同一列相同的列的最大值和值?

来自分类Dev

如何在Python列表中找到最小值或最大值

来自分类Dev

如何在列中找到最大值,跳到第n个值?

来自分类Dev

如何在 SML 中找到树的最小值和最大值

Related 相关文章

  1. 1

    如何从列中找到最大值

  2. 2

    如何从字典中找到最大值?

  3. 3

    如何从结构中找到最大值?

  4. 4

    如何在r的数据框中找到数字wrt的最大值和最小值?

  5. 5

    如何在图像中找到局部最大值

  6. 6

    如何在Swift对象数组中找到最大值?

  7. 7

    如何在RDD对中找到最大值?

  8. 8

    如何在Sympy中找到函数的最大值?

  9. 9

    如何在numpy数组列中找到最大值?

  10. 10

    如何在Swift字典中找到最大值?

  11. 11

    如何在numpy数组列中找到最大值?

  12. 12

    如何在字符串中找到最大值?

  13. 13

    如何在.txt文件中找到最大值?

  14. 14

    如何在数组中找到最大值

  15. 15

    如何在多维数组中找到最大值

  16. 16

    如何在numpy数组中找到对应的最大值

  17. 17

    如何在R中的数据框中找到列的最大值?

  18. 18

    如何在SQL中找到具有多个最大值的组的最大值?

  19. 19

    如何从整数列表中找到最大值

  20. 20

    如何使用 LINQ 在列表中找到最大值?

  21. 21

    如何在R中的栅格堆栈中找到第二个最大值和相应的图层名称

  22. 22

    如何从 R 中跨多个数据帧的公共列中找到最大值/最小值

  23. 23

    如何在XML文件中找到属性值的最大值?

  24. 24

    Python:如何在前10个值的列表中找到最大值?

  25. 25

    如何在列表中找到所有局部最大值和最小值

  26. 26

    如何在postgres中找到与同一列相同的列的最大值和值?

  27. 27

    如何在Python列表中找到最小值或最大值

  28. 28

    如何在列中找到最大值,跳到第n个值?

  29. 29

    如何在 SML 中找到树的最小值和最大值

热门标签

归档