R语言-找出向量或矩阵中的最大10个数

编程知识 行业动态 更新时间:2024-06-13 00:20:59

一、向量

最大10的数的索引(位置),可先按降序排序,得到索引号,然后将前10个取出即可。
建议方法:
order(x,decreasing=TRUE)[1:10]
过程详解:
1、测试数据x

> x
[1] 0.00 0.00 0.00 0.00 0.00 0.00 0.06 0.09 0.20 0.09 0.08 0.14 0.14 0.23
[15] 0.08 0.06 0.12 0.20 0.14 0.11 0.20 0.14 0.17 0.15 0.18 0.15 0.20 0.12
[29] 0.23 0.08 0.12 0.08 0.23 0.12 0.08 0.17 0.18 0.17 0.12 0.17 0.14 0.18
[43] 0.11 0.27 0.06


2、按降序排序

> order(x,decreasing=TRUE)
[1] 44 14 29 33  9 18 21 27 25 37 42 23 36 38 40 24 26 12 13 19 22 41 17 28
[25] 31 34 39 20 43  8 10 11 15 30 32 35  7 16 45  1  2  3  4  5  6
>


3、这里就能取出最大10个数的索引了
> order(x,decreasing=TRUE)[1:10]
[1] 44 14 29 33  9 18 21 27 25 37


4、可以看一下,这取出的10个数的索引是不是指向最大的十个数。
> x[order(x,decreasing=TRUE)[1:10]]
[1] 0.27 0.23 0.23 0.23 0.20 0.20 0.20 0.20 0.18 0.18

二、矩阵

首先设定有矩阵y,9行5列,求最大的10个数的索引。

> y

      [,1] [,2] [,3] [,4] [,5]
[1,] 0.00 0.09 0.14 0.12 0.18
[2,] 0.00 0.08 0.11 0.23 0.17
[3,] 0.00 0.14 0.20 0.08 0.12
[4,] 0.00 0.14 0.14 0.12 0.17
[5,] 0.00 0.23 0.17 0.08 0.14
[6,] 0.00 0.08 0.15 0.23 0.18
[7,] 0.06 0.06 0.18 0.12 0.11
[8,] 0.09 0.12 0.15 0.08 0.27
[9,] 0.20 0.20 0.20 0.17 0.06

 

 

解答方法:

 

 

1、使用sort.list()进行排序

> arrayInd(sort.list(y,decreasing=T)[1:10],dim(y))
      [,1] [,2]
[1,]    8    5
[2,]    5    2
[3,]    2    4
[4,]    6    4
[5,]    9    1
[6,]    9    2
[7,]    3    3
[8,]    9    3
[9,]    7    3
[10,]    1    5

 

 

 

2、使用order()函数进行排序

错误的方法:

> arrayInd(which(order(y, decreasing = TRUE) <= 10), dim(y))
      [,1] [,2]
[1,]    5    1
[2,]    3    4
[3,]    4    4
[4,]    1    5
[5,]    4    5
[6,]    5    5
[7,]    6    5
[8,]    7    5
[9,]    8    5
[10,]    9    5

which(order(y, decreasing = TRUE) <= 10)含义是先将数据进行排序,然后取索引小于等于10的,最大的10个数在排完序后,索引不应是<=10,而是排在前10位的就是最大的10个数的索引。
正确的方法:
> arrayInd(order(y,decreasing=TRUE)[1:10],dim(y))
      [,1] [,2]
[1,]    8    5
[2,]    5    2
[3,]    2    4
[4,]    6    4
[5,]    9    1
[6,]    9    2
[7,]    3    3
[8,]    9    3
[9,]    7    3
[10,]    1    5

更多推荐

R语言-找出向量或矩阵中的最大10个数

本文发布于:2023-03-30 22:33:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/791d323e114b9b888b15aba433cd402e.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:向量   矩阵   个数   语言

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!