R语言最基本的数据类型是向量(Vector)。R语言中单个数值(标量)没有单独的数据类型,它只不过是向量的一种特例。另一方面,R语言中矩阵是向量的一种特例。
循环补齐:在一定情况下自动延长向量。
筛选:提取向量子集。
向量化:对向量的每一个元素应用函数。
这些运算是R语言的核心。
R语言中变量类型称为模式(mode)。同一向量中的所有元素必须是相同的模式。可以调用函数typeof()进行查询。
2.1.1 添加后删除向量元素
与C语言类似,R中向量是连续存储的,因此不能插入或删除元素,而这跟Python语言中的数组不同。
> x <- c(88,5,12,13)
> x
[1] 88 5 12 13
> x<-c(x[1:3],168,x[4])# insert 168 before the 13
> x
[1] 88 5 12 168 13
>
2.1.2 获取向量长度
> length(x)
[1] 5
>
2.1.3 作为向量的矩阵和数组
> m=rbind(c(1,2),c(3,4))
> m
[,1] [,2]
[1,] 1 2
[2,] 3 4
> m+1:4
[,1] [,2]
[1,] 2 5
[2,] 5 8
>
这里2*2的矩阵m按列存储一个四元向量即(1,3,2,4)对应相加上(1,2,3,4)。
2.2 声明
通常,编译语言要求声明变量,即在使用前告诉编译器变量的存在。
和大多数脚本语言(例如Python和Perl)一样,R中不需要声明变量。
但是引用向量中的特定元素,就必须事前告知R。
> y<-vector(length=2)
> y[1]<-5
> y[2]<-8
> y[1]
[1] 5
> y
[1] 5 8
> typeof(y)
[1] "double"
&