R中的矩阵函数:创建、打印、添加列和切片
R中的矩阵函数
R中的矩阵函数是一个二维数组,它有m行和n列。换句话说,R编程中的矩阵是两个或多个具有相同数据类型的向量的组合。
注意:使用R中的矩阵函数可以创建多维数组。
如何在R中创建矩阵
我们可以使用matrix()函数来创建矩阵。以下是在R中创建矩阵的函数,它接受三个参数:
matrix(data, nrow, ncol, byrow = FALSE)
参数
- data:R将用于排列矩阵行和列的元素集合\
- nrow:行数
- ncol:列数
- byrow:行是从左到右填充的。如果我们希望矩阵按列填充(即值从上到下填充),我们使用`byrow = FALSE`(默认值)。
让我们构造一个由1到10的数字序列组成的5×2矩阵,一个使用byrow = TRUE,一个使用byrow = FALSE,以便看到区别。
# Construct a matrix with 5 rows that contain the numbers 1 up to 10 and byrow = TRUE matrix_a <-matrix(1:10, byrow = TRUE, nrow = 5) matrix_a
输出
使用dim()打印矩阵的维度
现在,让我们使用dim()打印R中矩阵的维度。在R中使用dim()打印矩阵的语法是:
# Print dimension of the matrix with dim() dim(matrix_a)
输出
## [1] 5 2
构造一个包含1到10的数字,有5行,并且byrow = FALSE的矩阵
# Construct a matrix with 5 rows that contain the numbers 1 up to 10 and byrow = FALSE matrix_b <-matrix(1:10, byrow = FALSE, nrow = 5) matrix_b
输出
使用dim()打印矩阵的维度
再次使用dim()打印矩阵的维度。下面是R打印矩阵维度的语法:
# Print dimension of the matrix with dim() dim(matrix_b)
输出
## [1] 5 2
注意:使用命令matrix_b <-matrix(1:10, byrow = FALSE, ncol = 2)与上面的效果相同。
您还可以使用ncol创建一个4×3的矩阵。R将创建3列,并从上到下填充行。请看一个例子:
matrix_c <-matrix(1:12, byrow = FALSE, ncol = 3) matrix_c
输出
## [,1] [,2] [,3] ## [1,] 1 5 9 ## [2,] 2 6 10 ## [3,] 3 7 11 ## [4,] 4 8 12
示例
dim(matrix_c)
输出
## [1] 4 3
使用cbind()向矩阵添加列
您可以使用cbind()命令向R矩阵添加列。cbind()表示按列绑定。cbind()可以连接任意数量的矩阵或列。例如,我们之前的例子创建了一个5×2的矩阵。我们连接第三列,并验证维度是5×3。
示例
# concatenate c(1:5) to the matrix_a matrix_a1 <- cbind(matrix_a, c(1:5)) # Check the dimension dim(matrix_a1)
输出
## [1] 5 3
示例
matrix_a1
输出
## [,1] [,2] [,3] ## [1,] 1 2 1 ## [2,] 3 4 2 ## [3,] 5 6 3 ## [4,] 7 8 4 ## [5,] 9 10 5
示例
我们也可以多次向R矩阵添加列。让我们看看下一序列数字到matrix_a2矩阵。R中新矩阵的维度将是4×6,包含从1到24的数字。
matrix_a2 <-matrix(13:24, byrow = FALSE, ncol = 3)
输出
## [,1] [,2] [,3] ## [1,] 13 17 21 ## [2,] 14 18 22 ## [3,] 15 19 23 ## [4,] 16 20 24
示例
matrix_c <-matrix(1:12, byrow = FALSE, ncol = 3) matrix_d <- cbind(matrix_a2, matrix_c) dim(matrix_d)
输出
## [1] 4 6
注意:R中矩阵的行数必须相等才能使cbind工作。
cbind()连接列,rbind()追加行。让我们向我们的matrix_c矩阵添加一行,并验证维度是5×3。
matrix_c <-matrix(1:12, byrow = FALSE, ncol = 3) # Create a vector of 3 columns add_row <- c(1:3) # Append to the matrix matrix_c <- rbind(matrix_c, add_row) # Check the dimension dim(matrix_c)
输出
## [1] 5 3
切片矩阵
我们可以通过使用方括号[ ]从R编程的矩阵中选择一个或多个元素。这就是切片的作用。
例如
- matrix_c[1,2]选择第一行第二列的元素。
- matrix_c[1:3,2:3]的结果是一个R切片矩阵,包含行1、2、3和列2、3的数据。
- matrix_c[,1]选择第一列的所有元素。
- matrix_c[1,]选择第一行的所有元素。
这是您从上述代码中获得的输出: