一、向量
1.向量是用于存储数值型、字符型或逻辑性数据的一维数组。一般用函数c()来创建向量。

a = c(1,2,3)

2.向量的每一个元素可以通过下表单独取出。

a = c (10,20,30,40)
a[2]       #取出第2个元素,R语言中的“下标”不代表偏移量,而代表第几个,也就是说是从1开始的。
#取出第1到第3项
a[1:3]   

#取出第1,4项
a[c(1,4)]

#不显示第1,3项
a[c(-1,-3)]

3.向量支持标量运算。

#做减法
c(1,2,3) - 0.5

#平方运算
c^2

4.向量中常用到NA和NULL,二者的区别如下:
(1)NA代表的是“缺失”,NULL代表的是“不存在”。
(2)NA缺失就像占位符,代表这里没有一个值,但位置存在。
(3)NULL代表的就是数据不存在。

二、逻辑型
1.逻辑向量主要用于向量的逻辑运算。

c(1,2,3) > 2

2.从线性表中筛选大于50小于70的数据。

vector = c(10,20,30,40,50,60,70,80,90)
vector[vector > 50 & vector < 70]

3.all和any。all()用于检查逻辑向量是否全为TRUE,any()用于检查逻辑向量是否含有TRUE。

all(c(TRUE, TRUE, TRUE))
[1] TRUE

all(c(TRUE, TRUE, FALSE))
[1] FALSE

any(c(TRUE, FALSE, FALSE))
[1] TRUE

any(c(FALSE, FALSE, FALSE))
[1] FALSE

4.%in%,用于检测左边的向量元素是否存在于右边。

c(1,2) %in% c(1,3,4)
[1]  TRUE FALSE

5.矩阵
R语言中的矩阵类似于其它语言中的二维数组。R 语言的矩阵可以使用 matrix() 函数来创建,语法格式如下:

/*
参数说明:
data 向量,矩阵的数据
nrow 行数
ncol 列数
byrow 逻辑值,为 FALSE 按列排列,为 TRUE 按行排列
dimname 设置行和列的名称
*/
matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,dimnames = NULL)
#创建矩阵
vector = c(1,2,3,4,5,6)
matrix(vector,2,3)

向量中的值会一列一列填充到矩阵中。如果想要按行填充,需要制定byrow属性:

matrix(vector,2,3,byrow=TRUE)

矩阵中的每一个值都可以通过索引进行访问。

m1 = matrix(vector,2,3,byrow=TRUE)
#访问第一行第一列的元素
m1[1,1]

R中的矩阵的每一行和每一列都可以设定名称,这个过程通过字符串向量批量完成。

#指定列名
colnames(m1) = c("x","y","z")
#指定行名
rownames(m1)=c("a","b")

矩阵的四则运算玉向量基本一致,既可以与标量做运算,也可以与同规模的矩阵做对应位置运算。

A1 = matrix(c(10,20),1,2)
A2 = matrix(c(30,40),2,1)
#矩阵与标量进行运算
A1 * 2
#矩阵与矩阵之间的运算
A1 %*% A2

apply()函数可以将矩阵的每一行或每一列当作向量来操作.

A = matrix(c(1,3,2,4),2,2)
#apply()函数第二个参数为1表示按行操作,使用sum()函数
apply(A,1,sum)
#apply()函数第二个参数为2表示按列操作,使用sum()函数
apply(A,2,sum)