如何使用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 中执行其他常见操作: