R中的矩阵函数:创建、打印、添加列和切片

R中的矩阵函数

R中的矩阵函数是一个二维数组,它有m行和n列。换句话说,R编程中的矩阵是两个或多个具有相同数据类型的向量的组合。

注意:使用R中的矩阵函数可以创建多维数组。

Matrix Function in 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

输出

Create a Matrix in R

使用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

输出

Matrix with 5 Rows that Contain byrow = FALSE

使用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,]选择第一行的所有元素。

这是您从上述代码中获得的输出:

Slice a Matrix