R数据结构-矩阵

发布时间 2023-05-31 22:04:09作者: 黑逍逍

在R语言中,矩阵(Matrix)是一种二维的数据结构,它由相同类型的元素组成,并具有固定的行数和列数。矩阵可以用于存储和处理二维数据,例如数值数据、统计数据、图像数据等

1. 创建矩阵

单个向量创建矩阵
vec <- c(1, 2, 3, 4, 5, 6)
mat <- matrix(vec, nrow = 2, ncol = 3)
mat
# 输出结果:
#      [,1] [,2] [,3]
# [1,]    1    3    5
# [2,]    2    4    6
多个向量创建矩阵
vec1 <- c(1, 2, 3)
vec2 <- c(4, 5, 6)
mat <- matrix(c(vec1, vec2), nrow = 2, ncol = 3)
mat
# 输出结果:
#      [,1] [,2] [,3]
# [1,]    1    3    5
# [2,]    2    4    6

 

2. 访问矩阵元素

> mat
     Col1   Col2    Col3 
Row1 "1"    "Hello" "5.5"
Row2 "2+3i" "TRUE"  "1"  

> mat[1,2]
[1] "Hello"

> mat[1,]
   Col1    Col2    Col3 
    "1" "Hello"   "5.5" 

  

3. 设置行列名称

rownames(mat) <- c("A", "B", "C")
colnames(mat) <- c("X", "Y", "Z")
mat
# 输出结果:
#   X Y Z
# A 1 4 7
# B 2 5 8
# C 3 6 9

  

4. 切片操作

mat[1:2, 2:3]
# 输出结果:
#   Y Z
# A 4 7
# B 5 8

  

5. 矩阵运算

mat1 <- matrix(1:6, nrow = 2)
mat2 <- matrix(7:12, nrow = 2)

mat_sum <- mat1 + mat2
mat_sum
# 输出结果:
#      [,1] [,2]
# [1,]    8   12
# [2,]   10   14

mat_prod <- mat1 %*% mat2
mat_prod
# 输出结果:
#      [,1] [,2] [,3]
# [1,]   58   64   70
# [2,]   79   89   99

mat_trans <- t(mat1)
mat_trans
# 输出结果:
#      [,1] [,2]
# [1,]    1    4
# [2,]    2    5
# [3,]    3    6