矩陣 是一種特殊的向量,所以矩陣中的數(shù)據(jù)類型树灶,必須為同一類型纤怒,否則會降級為同一類型,矩陣包含了兩個特殊的屬性(行和列)天通,可以看成二維數(shù)組泊窘。數(shù)組可以是多維度的,矩陣可以看成是數(shù)組的一種特殊形式像寒,只包含了二維(行和列)烘豹,三維數(shù)組可以包含(行、列诺祸、層(layer))携悯。
1 建
## 創(chuàng)建一個矩陣使用matrix(),具體用法如下:
matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,
dimnames = NULL)
## 矩陣中的行和列的下表都是從1開始的,并且在存儲的時候筷笨,默認是按列存儲的憔鬼。
## 舉例
m1 <- matrix(seq(1,10),nrow = 2,ncol = 5)
m1
[,1] [,2] [,3] [,4] [,5]
[1,] 1 3 5 7 9
[2,] 2 4 6 8 10
## 另外一種創(chuàng)建的方法類似于創(chuàng)建一個空矩陣,再往空矩陣里填值
m2 <- matix(ncol = ,nrow = 2) # 先創(chuàng)建一個兩行兩列的空列表
m2[1,1] = 1
m2[1,2] = 2
m2[2,1] = 3
m2[2,2] = 4
m2
[,1] [,2]
[1,] 1 2
[2,] 3 4
2 增 胃夏、刪除
## 矩陣是一種特殊的向量轴或,所以矩陣的增加或者刪除需要給矩陣從重新賦值
## 增加矩陣的大小,可以使用cbind()或者rbind()
cbind ---> column bind 按列組合
rbind ---> row bind 按行組合
舉例:
m3 <- c(1,2,3,4)
m4 <- matrix(seq(1,8),ncol=4,nrow=2)
m5 <- rbind(m3,m4)
m5
[,1] [,2] [,3] [,4]
m3 1 2 3 4
1 3 5 7
2 4 6 8
## 矩陣中也會采用循環(huán)補齊
## 刪除矩陣的元素也是采用重新賦值的方式
M <- matrix(1:8,nrow=4)
m <- M[1:2,]
m
[,1] [,2]
[1,] 1 5
[2,] 2 6
3 操作
## 矩陣也是一種向量仰禀,可以查看矩陣的長度
M <- matrix(1:10,ncol = 5)
length(M)
[1] 10
## 矩陣是一種特殊的數(shù)組照雁,由行和列兩個維度組成,使用dim()答恶,可以查看矩陣的行數(shù)和列數(shù)囊榜,對于一些了解一些未知的矩陣很有幫助。
dim(M)
[1] 2 5
## 還可以通過索引的方式亥宿,獲得矩陣的行數(shù)或者列數(shù)。
dim(M)[1]
[1] 2
## 矩陣也可以進行一些數(shù)學運算
## 線性代數(shù)運算
X <- matrix(1:4,ncol = 2)
X %*% X # ----> 注意在行數(shù)和列數(shù)不相同的情況下砂沛,會出錯烫扼,非整合參數(shù)
[,1] [,2]
[1,] 7 15
[2,] 10 22
X * 3 # -----> 3會循環(huán)補齊
[,1] [,2]
[1,] 3 9
[2,] 6 12
## 篩選矩陣中符合條件的元素
X[X > 1]
[1] 2 3 4
f <- function(x) x>1
X[apply(X,1,f)]
[1] 2 3 4