如何使用r中的scan函数(附示例)


您可以使用 R 中的swep()函数对矩阵的行或列执行某些操作。

该函数使用以下基本语法:

 sweep(x, MARGIN, STATS, FUN)

金子:

  • x :矩阵名称
  • MARGIN :执行该功能的边距(1=行,2=列)
  • STATS :函数中使用的值
  • FUN :要执行的功能

以下示例展示了如何在 R 中的不同场景中使用swep()函数。

示例 1:使用 swep() 对行执行操作

下面的代码展示了如何使用swep()函数将特定数字添加到矩阵每一行的值中:

 #define matrix
mat <- matrix(1:15, nrow= 5 )

#view matrix
mast

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

#add specific numbers to each row
sweep(mat, 1 , c(5, 10, 15, 20, 25), " + ")

     [,1] [,2] [,3]
[1,] 6 11 16
[2,] 12 17 22
[3,] 18 23 28
[4,] 24 29 34
[5,] 30 35 40

以下是swep()函数在这种情况下的工作原理:

  • 第一行的每个值都添加了5
  • 第二行中的每个值都添加了10
  • 第三行中的每个值都添加了15
  • 第四行中的每个值都添加了20
  • 第五行中的每个值都添加了25

请注意,在此示例中,我们使用加法 (+) 作为要执行的数学运算,但我们可以选择使用不同的运算。

例如,以下代码显示了如何将每行中的值乘以某些数字:

 #define matrix
mat <- matrix(1:15, nrow= 5 )

#view matrix
mast

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

#multiply values in each row by certain amount
sweep(mat, 1 , c(.5, 1, 2, 4, 6), " * ")

     [,1] [,2] [,3]
[1,] 0.5 3 5.5
[2,] 2.0 7 12.0
[3,] 6.0 16 26.0
[4,] 16.0 36 56.0
[5,] 30.0 60 90.0

示例2:使用scanning()对列执行操作

下面的代码展示了如何使用swep()函数将特定数字添加到矩阵每一列的值中:

 #define matrix
mat <- matrix(1:15, nrow= 5 )

#view matrix
mast

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

#add specific numbers to each column
sweep(mat, 2 , c(5, 10, 15), " + ")

     [,1] [,2] [,3]
[1,] 6 16 26
[2,] 7 17 27
[3,] 8 18 28
[4,] 9 19 29
[5,] 10 20 30

以下是swep()函数在这种情况下的工作原理:

  • 第一列中的每个值都添加了5
  • 第二列中的每个值都添加了10
  • 第三列中的每个值都添加了15

其他资源

以下教程解释了如何在 R 中执行其他常见操作:

如何在 R 中创建空矩阵
如何在 R 中将数据帧转换为矩阵
如何在 R 中绘制矩阵的行

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注