单个向量中的数据类型要求必须是相同的类型,同一个向量当中无法混杂不同类型的数据;

向量赋值

1)左键头赋值

> x <- c(1,3,5,7,9)
> x
[1] 1 3 5 7 9

2)assign函数对向量进行赋值

例子: 

> assign("w",c(1,3,5,7,9))
> w
[1] 1 3 5 7 9

 

3)还可以用右键头进行赋值:

例子:

> c(1,3,5,7,9) -> y
> y
[1] 1 3 5 7 9

 

 

向量

向量长度:R语言中向量的个数称为向量的长度,个数为1的向量就是常数;

函数length可以返回向量的长度

 

向量间的运算

1)乘法运算

2)除法运算

3)取余

4)取整

 

> x <- c(1,3,5,7,9)
> c(1,3,5,7,9)-> y
> x*y
[1]  1  9 25 49 81
> x/y
[1] 1 1 1 1 1
> x^2
[1]  1  9 25 49 81
> y^x
[1]         1        27      3125    823543 387420489
> 5%/%3
[1] 1
> 5%%3
[1] 2

mode返回数据的类型

min返回数据的最小值

max返回数据的最大值

rang(x):表示x的变化范围从1到9

Which.min和which.max返回在第几个分量上获得最小最大的值

> numbers <- c(1,3,5,6,9)
#在哪个位置上取得最小值
> which.min(numbers)

[1] 1

#在哪个位置上取得最大值
> which.max(numbers)
[1] 5

 

R产生正则序列

最简单的使用冒号产生有规律的序列:

 

(加上括号就可以直接被输出)

例1:

> (t<-1:10) 

[1]  1  2  3  4  5  6  7  8  9 10
 
> t <- 1:10
> t 
[1]  1  2  3  4  5  6  7  8  9 10

 

也可以倒着输出

> (t <- 10 :1)
 [1] 10  9  8  7  6  5  4  3  2  1

在表达式的运算中,”:”即冒号的表达式是最高的;

> 2*1:5
[1]  2  4  6  8 10

 

函数SEQ(sequence)序列:序列分为三个部分

1)从哪开始

2)到哪截止

3)步长

例:序列从1开始,到10结束,步长为2

> seq(1,10,2)
[1] 1 3 5 7 9

 

如果不指定步长,则使用默认步长为1;

> seq(1,10) 
[1]  1  2  3  4  5  6  7  8  9 10

 

还可以让步长为负数,可以理解为倒着走(已步长为公差的递减序列)

> seq(10,1) 
[1] 10  9  8  7  6  5  4  3  2  1
 
> seq(10,1,-2)
[1] 10  8  6  4  2

 

注意:步长可以用by也可以不写by;

有时情况比较特殊,我们需要关心数列的长度,这时:

例:从1开始,步长为2,输出10个数

> seq(1,by=2,length=10)
 [1]  1  3  5  7  9 11 13 15 17 19

 

用各种复杂的方式来重复一个对象:rep函数

一般来说rep函数用两个参数就够了,前面一个参数表示重复的对象,后面一个参数表示要重复的次数;

例:

> rep(1:3)
[1] 1 2 3

把向量(1,3)重复4遍

> rep(c(1,3),4)
[1] 1 3 1 3 1 3 1 3

 

如果加each来修饰:先将1重复4遍,再将3重复4遍

> rep(c(1,3),each=4)
[1] 1 1 1 1 3 3 3 3

 

rep函数的重叠使用:

rep(2,3):把2重复三次,后面在把每个对象都做两次重复,一共是1,2,3这三个对象这样来做

> rep(1:3,rep(2,3))
[1] 1 1 2 2 3 3
> rep(2,3)
[1] 2 2 2

 

 

向量的运算会对这个向量的每一个元素都会做同样的运算,那出现在同一个表达式的运算,最好是同样的长度,如果长度不一样,表达式中短的向量会被循环使用。所以表达式的值会和最长的向量等长的向量 ;R语言有许多内置的函数,可以对向量进行运算,可以有效的提高工作效率,

 

 

例如:mean()函数求向量的均值;

> t <- c(2,543,3,5,1)
> mean(t)
[1] 110.8
sum()求和;
> sum(t)
[1] 554
 
median()求中位数;
> median(t)
[1] 3
 
求方差(距离均值的平均距离)var();
> var(t)
[1] 58376.2
 
R语言默认小数点后面保留六位小数;标准差sd();
> sd(t)
[1] 241.6117
 
排序sort() --- 从小到大排序;
> t <- c(2,543,3,5,1)
> sort(t)
[1]   1   2   3   5 543
 
rev()  (reverse)将结果反向输出;
> t <- c(2,543,3,5,1)
> rev(t)
[1]   1   5   3 543   2
 
求向量的秩:rank();

例:

主要是按照它的顺序给出它的位置

> t <- c(2,543,3,5,1)
> rank(t)
[1] 2 5 3 4 1

 

prod这个方法来自production表示求积;可以把向量里面所有的数值都把他乘在一起

> t <- c(2,543,3,5,1)
> prod(t)
[1] 16290



除此之外还可以用append函数为原有的向量添加元素

> append(t,10:15) 
[1]   2 543   3   5   1  10  11  12  13  14  15