向量

2018-08-31

2018-08-31
数据结构-向量

在R语言中,向量是数据结构的基本单位,能够用来组织多个数据,从而对数据进行统计分析。

在数学与物理中,既有大小又有方向的量叫做向量(亦称矢量)。

在编程应用中,向量是以一维数组的方式管理数据的一种对象类型。

1 向量的创建


创建方法一:自定义创建向量

  R中创建向量的方法可以用向量名<-c(<元素1>,<元素2>,……<元素n>)来进行处理,向量内各元素使用逗号分隔。如下所示:

V<-c(1,9,66,4,5)  # 创建向量V
print(V)          # 运行向量结果
## [1]  1  9 66  4  5

创建方法二:有规律创建向量

当创建的向量符合某种规律时,创建的形式有以下3种:

1)使用冒号创建向量

从1到10的数值,创建一个向量,如下:

V<-1:10   # 从1到10创建向量
print(V)  # 运行向量结果
##  [1]  1  2  3  4  5  6  7  8  9 10

2)使用from和to创建向量

从1到10的数值,创建一个向量,也可借助顺序参数from和to进行操作,如下:

V<-seq(from=1,to=10)   # 从1开始截止到10创建向量
print(V)
##  [1]  1  2  3  4  5  6  7  8  9 10

从1到10的数值创建的向量成等差间隔,可用参数by进行操作,如下:

V <- seq(from=1,to=10,by=4) # 从1到10的数字,间隔为4,创建向量
print(V)
## [1] 1 5 9

3)使用length.out参数创建向量

将1到10的数值进行等分数值创建的向量,可用参数length.out进行操作,就能得到1到10的等分中位数。如下:

V<-seq(from=1,to=10,length.out=5) # 对从1到10的数字,等分为5个长度,创建元素向量.
print(V)
## [1]  1.00  3.25  5.50  7.75 10.00

2 向量的处理


向量的处理:涉及向量的访问、删除、排序、合并、运算、修改等。

1)访问向量元素

自定义创建向量V,对向量进行访问。

V<-c(11,22,33,44,55,66,77,88)  # 创建向量V
print(V)                       # 访问向量中的元素
## [1] 11 22 33 44 55 66 77 88

访问向量V中的第5个元素。

V<-c(11,22,33,44,55,66,77,88) 
print(V[5])                    # 访问向量中的第5个元素
## [1] 55

对向量V中元素数值大于33的进行筛选查看。

V<-c(11,22,33,44,55,66,77,88) 
print(V[V>33])                 # 访问向量中元素大于33的向量
## [1] 44 55 66 77 88

2)删除向量元素

删除向量V中第4个元素。

V<-c(11,22,33,44,55,66,77,88)  # 创建向量V
print(V[-4])   # 删除向量中第4个元素
## [1] 11 22 33 55 66 77 88

3)向量的排序

参数介绍:

rev(向量名) 对向量的下标进行倒排序

sort(向量名) 依据大小对向量进行升序

rev(sort(向量名)) 依据向量大小进行降序

V<-c(44,22,88,11,55,77,66,33) # 创建向量V
rev(V)                          # 对向量V进行倒排序 
## [1] 33 66 77 55 11 88 22 44

对向量V中元素的大小进行升序排列

V<-c(44,22,88,11,55,77,66,33) 
sort(V)                         # 依据大小对向量V进行升序
## [1] 11 22 33 44 55 66 77 88

对向量V中元素的大小进行降序排列

V<-c(44,22,88,11,55,77,66,33)
rev(sort(V))                     # 对向量V大小进行降序
## [1] 88 77 66 55 44 33 22 11

4)多个向量的合并

将三个向量V1、V2、V3合并成一个向量VV。

V1<-c(2,4,6)    # 创建向量V1
V2<-c(8,11,23)  # 创建向量V2
V3<-c(9,10,14)  # 创建向量V3
VV<-c(V1,V2,V3) # 多向量合并程向量VV   
print(VV)       # 显示向量VV合并结果
## [1]  2  4  6  8 11 23  9 10 14

5)向量的计算

计算向量X1+X2

X1<-1:5            # 创建1-5的向量
X2<-6:10           # 创建6-10的向量
print(X1+X2)       # 向量X1+X2
## [1]  7  9 11 13 15

计算向量X1-X2

X1<-1:5            
X2<-6:10
print(X1-X2)       # 向量X1-X2
## [1] -5 -5 -5 -5 -5

计算向量X1与X2的乘积

X1<-1:5            
X2<-6:10
print(X1*X2)       # 向量X1*X2
## [1]  6 14 24 36 50

计算向量X1与X2的商

X1<-1:5            
X2<-6:10
print(X1/X2)       # 向量X1/X2
## [1] 0.1666667 0.2857143 0.3750000 0.4444444 0.5000000

计算向量X1与数值2相乘

X1<-1:5            
print(X1[1:5]*2)   # 对单个向量乘以2
## [1]  2  4  6  8 10

计算向量X1的长度

X1<-1:5            
print(length(X1))  # 向量长度计算
## [1] 5

计算向量X1中元素的均值

X1<-1:5            
print(mean(X1))    # 向量元素和的均值计算
## [1] 3

6)向量的修改

对向量元素中的位置元素进行修改替换

X<-1:10           # 创建1-10的向量
X[5]<-100         # 修改第5个位置的向量元素为100
print(X)          # 查看向量的修改后的结果
##  [1]   1   2   3   4 100   6   7   8   9  10

7)向量元素增加

对向量元素中数量进行增加

X<-1:10           # 创建1-10的向量
X<-c(X,11,12,13)  # 增加向量元素11,12,13
print(X)          # 查看结果
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12 13

8)向量去重

有时可能需要删除向量内重复的元素,这时可以用unique(向量对象)来实现。

X<-c(11,12,15,13,11,11,12)
unique(X)
## [1] 11 12 15 13