R语言-查找满足条件的数并获取索引
Posted gavanwanggw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言-查找满足条件的数并获取索引相关的知识,希望对你有一定的参考价值。
1、在R语言中,怎样找到满足条件的数呢?
比如给定一个向量c2。要求找到数值大于0的数:
> 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的数列:
> 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
其次,依据该数列标识。就能找到相应的索引了。
> 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)推断至少一个数满足条件比如推断向量中至少有一个小于或等于零的数
> any(c2<=0)
[1] TRUE
(2)推断全部的数都满足条件
比如推断全部的数都大于0,推断全部的数都大于等于0:
> all(c2>0)
[1] FALSE
> all(c2>=0)
[1] TRUE
>
以上是关于R语言-查找满足条件的数并获取索引的主要内容,如果未能解决你的问题,请参考以下文章
R语言dplyr包mutate_if函数修改所有满足条件的数据列的内容实战
R语言dataframe计算满足筛选条件的行的个数(筛选满足条件的数据行并计数):类似于excel的countif函数
R语言使用fs包的path_filter函数按照规则或者正则匹配公式过滤满足条件的路径(Filter paths)
R语言非独立多分组非参数检验Kruskal–Wallis检验进行非独立多分组非参数检验(Nonparametric multiple comparisons)当ANOVA不满足条件的情况下
R语言ggplot2可视化绘制线图(line plot)使用gghighlight包突出高亮线图的满足条件的线图自定义高亮线图标签的大小(label_params)