zoukankan      html  css  js  c++  java
  • R语言入门:向量索引

    这节的内容是建立在之前我们对R语言最基本向量赋值的基础之上的,笔者本人学完R当中向量的索引感觉异常舒适,因为这个比Python的索引爽多了,是什么值开始索引就从哪里开始索引,到哪里结束就在哪里结束,而不会像Python一样有的时候输入0实际上是从1开始计数,有的时候到99为止实际上你要索引到100,给人一种难以弄清的感觉。学了简洁的R心里大为开朗。

    一.得到向量当中某个数值的值

    首先我们先生成一个从1到100数值的向量:

    > x <- c(1:100)
    > x
      [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29
     [30]  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58
     [59]  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87
     [88]  88  89  90  91  92  93  94  95  96  97  98  99 100
    > length(x)
    [1] 100

    可以看到这个向量的长度正好是100不多也不少,不是99也不是1011,极度舒适。然后利用索引提取其中的第8个数,我们来看看是不是8:

    > x[8]
    [1] 8

    二.除开某个值,得到剩余的其他值

    x[-19]
     [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  20  21  22  23  24  25  26  27  28  29  30
    [30]  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59
    [59]  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88
    [88]  89  90  91  92  93  94  95  96  97  98  99 100

    这里用负号表示除开了19,得到其他剩余的值并表示出来。

    三.利用向量进行索引

    > x[c(4:78)]
     [1]  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
    [40] 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
    > x[c(1,45,67,68)]
    [1]  1 45 67 68

    四.向量当中加入布尔值进行真假判断并输出

    > y <- c(1,2,3,4,5,6)
    > y
    [1] 1 2 3 4 5 6
    > y[c(T)]
    [1] 1 2 3 4 5 6
    > y[c(T,F)]
    [1] 1 3 5

    从中我们可以看到的是首先引入一个Y向量,第一次全部数字主动命令判断为真,则数字全部输出。第二次不断循环先真后假,因此仅输出1,3,5。当然还比较常用的则是直接将数值进行判断,甚至可以加上逻辑词,如下所示:

    y[y>2]
    [1] 3 4 5 6
    y[y>2 & y<100]
    [1] 3 4 5 6

    在R当中,使用的是一个“&负号,而不是两个,这个也是一个看起来极度舒适的点。

    五.判断向量(vector)当中的某个数值(component)是否在向量当中

    首先先构造向量x:

    > x <- c("one","two","three")
    > x
    [1] "one"   "two"   "three"

    然后使用函数进行判断:

    > "one" %in% x 
    [1] TRUE

    结果是T,说明“one”这个元素是在这个我们所构造的元素当中的。

    六.将数值添加进某个已经存在的向量当中

    最简单的是在向量的最后面添加,方法如下:

    > a <-c(1:100)
    > a
      [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29
     [30]  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58
     [59]  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87
     [88]  88  89  90  91  92  93  94  95  96  97  98  99 100
    > a[101]=101
    > a
      [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29
     [30]  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58
     [59]  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87
     [88]  88  89  90  91  92  93  94  95  96  97  98  99 100 101

    直接在101的索引处添加数字即可也。

    然后是在某个数值之后添加数值的方法,比如我们要在3之后添加一个数值99,当然我们先创建一个新的向量V,代码如下所示:

    > v <- c(1:9)
    > v[20] <- 20
    > v
     [1]  1  2  3  4  5  6  7  8  9 NA NA NA NA NA NA NA NA NA NA 20
    > append(x=v,values = 99,after=3)
     [1]  1  2  3 99  4  5  6  7  8  9 NA NA NA NA NA NA NA NA NA NA 20

    今天的教程就到此结束了!希望大家看到之后能够有所收获!

  • 相关阅读:
    linux系统根目录文件系统空间不足导致的错误
    python---对象
    公共函数
    PHP接口(interface)和抽象类(abstract)
    mysql引擎
    InstallShield自定义图片资源
    InstallShield 创建自己的Dialog
    InstallShield:自己备份
    注册表和ODBC
    IS脚本学习
  • 原文地址:https://www.cnblogs.com/geeksongs/p/12363667.html
Copyright © 2011-2022 走看看