我是靠谱客的博主 心灵美蜜蜂,这篇文章主要介绍R语言 查找满足条件的数并获取索引的操作,现在分享给大家,希望可以做个参考。

1、在R语言中,如何找到满足条件的数呢?

例如给定一个向量c2,要求找到数值大于0的数:

复制代码
1
2
3
4
5
6
7
8
9
10
> c2 [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 > c2[c2>0] [1] 0.06 0.09 0.20 0.09 0.08 0.14 0.14 0.23 0.08 0.06 0.12 0.20 0.14 0.11 [15] 0.20 0.14 0.17 0.15 0.18 0.15 0.20 0.12 0.23 0.08 0.12 0.08 0.23 0.12 [29] 0.08 0.17 0.18 0.17 0.12 0.17 0.14 0.18 0.11 0.27 0.06 >

2、找到了满足条件的数,但如何获取这些数在原向量中的位置(或索引呢)?

答案是使用which()函数。首先找到满足大于0的数列:

复制代码
1
2
3
4
5
> c2>0 [1] FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE [13] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [25] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [37] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

其次,根据该数列标识,就能找到对应的索引了。

复制代码
1
2
3
> which(c2>0) [1] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [25] 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45

3、查找判断

(1)判断至少一个数满足条件

例如判断向量中至少有一个小于或等于零的数

复制代码
1
2
> any(c2<=0) [1] TRUE

(2)判断所有的数都满足条件

例如判断所有的数都大于0,判断所有的数都大于等于0:

复制代码
1
2
3
4
5
> all(c2>0) [1] FALSE > all(c2>=0) [1] TRUE >

补充:R语言-查询向量中指定条件的数据-which

如下所示:

复制代码
1
2
3
4
5
6
> c(1,2,5,2,1,6,19,77,68,21,2,2,1,1)->x > which(x>20)->y > y [1] 8 9 10 > x[y] [1] 77 68 21

which函数返回符合条件元素的下标

以上为个人经验,希望能给大家一个参考,也希望大家多多支持靠谱客。如有错误或未考虑完全的地方,望不吝赐教。

最后

以上就是心灵美蜜蜂最近收集整理的关于R语言 查找满足条件的数并获取索引的操作的全部内容,更多相关R语言内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(117)

评论列表共有 0 条评论

立即
投稿
返回
顶部