当前位置 博文首页 > 文章内容

    R语言 查找满足条件的数并获取索引的操作

    作者:shunshunshun18 栏目:未分类 时间:2021-04-02 14:42:59

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    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语言-查询向量中指定条件的数据-which

    如下所示:

     > 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函数返回符合条件元素的下标

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