R语言主要用于统计,因此引入了向量这个概念将更好地进行统计计算,在其他无法引入向量的语言当中则会使用循环来计算一些大规模的数据,在R语言当中则不需要,下面我们来看看R语言当中向量的具体用法吧!
首先,如果我们把x作为一个向量,将其赋值为拥有五个元素的向量,代码如下:
> x <- c(1,2,3,4,5) > x [1] 1 2 3 4 5 >
我们可以看到x的值已经变成了1,2,3,4,5,其中进行向量赋值的时候,我们使用的是C()函数进行的向量化。当然,向量里面并不会像数学一样里面仅具有数值,而是可以具有布尔值和字符串。下面是输入字符串向量的例子:
y <- c("one","two","three") > y [1] "one" "two" "three" > print(y) [1] "one" "two" "three"
布尔值:
> z <- c(TRUE,T,F) > z [1] TRUE TRUE FALSE
也可以直接使用C函数一个一个地输出每一个数字:
> c(1:100) [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [18] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 [35] 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 [52] 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 [69] 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 [86] 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
这里冒号表示的是从1挨个输出到100,如果想要改变这个等差为1的输出数列,则可以将等差更换为2,输出方法为:
> seq (from=1,to=100,by=2) [1] 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 [24] 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 [47] 93 95 97 99
也可以将等差的值更改为10,或者利用length.out限定在规定的范围内只输出多少个值,如下所示:
> seq (from=1,to=100,by=10) [1] 1 11 21 31 41 51 61 71 81 91 > seq (from=1,to=100,length.out = 10) [1] 1 12 23 34 45 56 67 78 89 100
向量的复制,将2重复5次:
> rep(2,5)
[1] 2 2 2 2 2
将x重复5次:
> x [1] 1 2 3 4 5 > rep(x,5) [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
将x向量当中的每一个数字分别重复5次,重复之后还可以再重复一次:
> rep(x,each=5) [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 > rep(x,each=5,times=2) [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 1 1 1 1 1 2 2 2 2 [35] 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5
利用mode()函数测量对象是属于什么类型:
> mode(x) [1] "numeric"
将两个不同的向量进行运算:
> x <- c(1,2,3,4,5) > y <- c(6,7,8,9,10) > x*2+y [1] 8 11 14 17 20
查找X向量当中的值:
> x[x>3]
[1] 4 5
得解。