R 矩阵

R 矩阵 首页 / R入门教程 / R 矩阵

        在R中,二维矩形数据集称为矩阵。借助于矩阵函数的矢量输入来创建矩阵。在R矩阵上,我们可以执行加,减,乘和除运算。

        在R矩阵中,元素以固定数量的行和列排列。矩阵元素是实数。在R中,我们使用矩阵函数,该函数可以轻松地重现矩阵的内存表示形式。在R矩阵中,所有元素必须共享一个公共的基本类型。

示例

matrix1<-matrix(c(11, 13, 15, 12, 14, 16),nrow =2, ncol =3, byrow = TRUE)
matrix1

输出

[,1]  [,2]  [,3]
[1,]   11   13   15
[2,]   12   14   16
R Matrix


创建矩阵

        像vector和list一样,R提供创建矩阵的函数。 R提供了matrix()函数来创建矩阵。此函数在数据分析中起着重要作用。 R中矩阵的语法如下:

matrix(data, nrow, ncol, byrow, dim_name)

data               -  矩阵函数中的第一个参数是数据。输入向量是矩阵的数据元素。

nrow             第二个参数是我们要在矩阵中创建的行数。

ncol               第三个参数是我们要在矩阵中创建的列数。

byrow           -  byrow参数是一个逻辑线索。如果其值为true,则按行排列输入向量元素。

dim_name  -  dim_name参数是分配给行和列的名称。

让我们看一个示例,以了解如何使用矩阵函数创建矩阵并按行或列顺序排列元素。

无涯教程网

示例

#按行顺序排列元素。
P <- matrix(c(5:16), nrow = 4, byrow = TRUE)
print(P)

#按列顺序排列元素。
Q <- matrix(c(3:14), nrow = 4, byrow = FALSE)
print(Q)

# 定义列名和行名。
row_names = c("row1", "row2", "row3", "row4")
col_names = c("col1", "col2", "col3")

R <- matrix(c(3:14), nrow = 4, byrow = TRUE, dimnames = list(row_names, col_names))
print(R)

输出

      [,1] [,2] [,3]
[1,]    5    6    7
[2,]    8    9   10
[3,]   11   12   13
[4,]   14   15   16

      [,1] [,2] [,3]
[1,]    3    7   11
[2,]    4    8   12
[3,]    5    9   13
[4,]    6   10   14

      col1 col2 col3
row1    3    4    5
row2    6    7    8
row3    9   10   11
row4   12   13   14

访问矩阵

像 C  和C++一样,我们可以通过使用元素的索引轻松访问矩阵的元素。有三种方法可以从矩阵访问元素。

  1. 我们可以访问第n行和第m列上显示的元素。
  2. 我们可以访问第n行上存在的矩阵的所有元素。
  3. 我们还可以访问第m列上存在的矩阵的所有元素。

让我们看一个示例,以了解如何从第n行第m列,第n行或第m列上存在的矩阵访问元素。

示例

# 定义列名和行名。
row_names = c("row1", "row2", "row3", "row4")
col_names = c("col1", "col2", "col3")
#创建矩阵
R <- matrix(c(5:16), nrow = 4, byrow = TRUE, dimnames = list(row_names, col_names))
print(R)

#访问存在于第 3 行和第 2 列的元素
print(R[3,2])

#访问第 3 行中的元素
print(R[3,])

#访问存在于第二列中的元素
print(R[,2])

输出

      col1 col2 col3
row1    5    6    7
row2    8    9   10
row3   11   12   13
row4   14   15   16

[1] 12

col1 col2 col3
  11   12   13

row1 row2 row3 row4
   6    9   12   15

矩阵修改

R允许我们在矩阵中进行修改。有几种方法可以在矩阵中进行修改,如下所示:

R Matrix

分配一个元素

        在矩阵修改中,第一种方法是在特定位置将单个元素分配给矩阵。通过为该位置分配一个新值,旧值将被替换为新值。这种修改技术很容易执行矩阵修改。其基本语法如下:

matrix[n, m]<-y 

在此,n和m分别是元素的行和列。并且,y是我们分配用来修改矩阵的值。

让我们看一个例子,以了解如何进行修改:

示例

#定义列名和行名。
row_names = c("row1", "row2", "row3", "row4")
col_names = c("col1", "col2", "col3")

R <- matrix(c(5:16), nrow = 4, byrow = TRUE, dimnames = list(row_names, col_names))
print(R)

#将值 20 分配给 3 行和第 2 列的元素
R[3,2]<-20
print(R)

输出

      col1 col2 col3
row1    5    6    7
row2    8    9   10
row3   11   12   13
row4   14   15   16

      col1 col2 col3
row1    5    6    7
row2    8    9   10
row3   11   20   13
row4   14   15   16

关系运算符的使用

我们使用了一些关系运算符,例如>,<,==。与第一种方法一样,第二种方法非常易于使用。让我们看一个例子,以了解此方法如何修改矩阵。

示例1

# 定义列名和行名。
row_names = c("row1", "row2", "row3", "row4")
col_names = c("col1", "col2", "col3")

R <- matrix(c(5:16), nrow = 4, byrow = TRUE, dimnames = list(row_names, col_names))
print(R)

#替换等于 12 的元素
R[R==12]<-0
print(R)

输出

      col1 col2 col3
row1    5    6    7
row2    8    9   10
row3   11   12   13
row4   14   15   16

      col1 col2 col3
row1    5    6    7
row2    8    9   10
row3   11    0   13
row4   14   15   16

示例2

# 定义列名和行名。
row_names = c("row1", "row2", "row3", "row4")
col_names = c("col1", "col2", "col3")

R <- matrix(c(5:16), nrow = 4, byrow = TRUE, dimnames = list(row_names, col_names))
print(R)

#替换值大于 12 的元素
R[R>12]<-0
print(R)

输出

      col1 col2 col3
row1    5    6    7
row2    8    9   10
row3   11   12   13
row4   14   15   16

      col1 col2 col3
row1    5    6    7
row2    8    9   10
row3   11   12    0
row4    0    0    0

行和列的加法

        矩阵修改的第三种方法是使用cbind()rbind()函数添加行和列。 cbind()rbind()函数分别用于添加列和行。让我们看一个例子来理解cbind()rbind()函数的工作。

示例1

# 定义列名和行名。
row_names = c("row1", "row2", "row3", "row4")
col_names = c("col1", "col2", "col3")

R <- matrix(c(5:16), nrow = 4, byrow = TRUE, dimnames = list(row_names, col_names))
print(R)

#添加行
rbind(R,c(17,18,19))

#添加列
cbind(R,c(17,18,19,20))

#使用 t() 函数转置矩阵:
t(R)

#使用 dim() 函数修改矩阵的维度
dim(R)<-c(1,12)
print(R)

输出

      col1 col2 col3
row1    5    6    7
row2    8    9   10
row3   11   12   13
row4   14   15   16

      col1 col2 col3
row1    5    6    7
row2    8    9   10
row3   11   12   13
row4   14   15   16
             17   18   19

      col1 col2 col3
row1    5    6    7 17
row2    8    9   10 18
row3   11   12   13 19
row4   14   15   16 20

      row1 row2 row3 row4
col1    5    8   11   14
col2    6    9   12   15
col3    7   10   13   16

     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
[1,]    5    8   11   14    6    9   12   15    7    10    13    16

矩阵运算

在R中,我们可以对矩阵执行数学运算,例如加,减,乘等。为对矩阵执行数学运算,要求两个矩阵都应具有相同的维数。

R Matrix

让我们看一个例子,以了解如何对矩阵执行数学运算。

示例1

R <- matrix(c(5:16), nrow = 4,ncol=3)
S <- matrix(c(1:12), nrow = 4,ncol=3)

#相加
sum<-R+S
print(sum)

#相减
sub<-R-S
print(sub)

#相乘
mul<-R*S
print(mul)

#乘以常数
mul1<-R*12
print(mul1)

#相除
div<-R/S
print(div)

输出

      [,1] [,2] [,3]
[1,]    6   14   22
[2,]    8   16   24
[3,]   10   18   26
[4,]   12   20   28

      [,1] [,2] [,3]
[1,]    4    4    4
[2,]    4    4    4
[3,]    4    4    4
[4,]    4    4    4

      [,1] [,2] [,3]
[1,]    5   45  117
[2,]   12   60  140
[3,]   21   77  165
[4,]   32   96  192

      [,1] [,2] [,3]
[1,]   60  108  156
[2,]   72  120  168
[3,]   84  132  180
[4,]   96  144  192

      [,1]     [,2]      [,3]
[1,] 5.000000 1.800000 1.444444
[2,] 3.000000 1.666667 1.400000
[3,] 2.333333 1.571429 1.363636
[4,] 2.000000 1.500000 1.333333

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

软件测试52讲 -〔茹炳晟〕

重学前端 -〔程劭非(winter)〕

Java性能调优实战 -〔刘超〕

SQL必知必会 -〔陈旸〕

说透中台 -〔王健〕

接口测试入门课 -〔陈磊〕

互联网人的英语私教课 -〔陈亦峰〕

Redis核心技术与实战 -〔蒋德钧〕

玩转Vue 3全家桶 -〔大圣〕

好记忆不如烂笔头。留下您的足迹吧 :)