這節的內容是建立在之前我們對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
今天的教程就到此結束了!希望大家看到之后能夠有所收獲!