如何在R中按行最小值划分矩阵行?

要将矩阵行值除以 R 中的行最小值,我们可以按照以下步骤操作 -

  • 首先,创建一个矩阵。

  • 然后,使用 apply 函数将矩阵行值除以行最小值。

创建矩阵

让我们创建一个矩阵,如下所示 -

例子

> M<-matrix(sample(1:20,75,replace=TRUE),ncol=3)
> M

执行时,上面的脚本会生成以下输出(由于随机化,此输出会因您的系统而异) -

输出结果

     [,1] [,2] [,3]
[1,]  16    1   18
[2,]  18   12    1
[3,]  12   19   19
[4,]   7    2   18
[5,]  10   14   16
[6,]   8    4    8
[7,]  15   14    4
[8,]   2    1   17
[9,]  11   12    8
[10,] 11   19    6
[11,]  8    2    7
[12,]  8   14    1
[13,]  5   19   18
[14,] 17   14    6
[15,] 13   12   18
[16,]  1   19   14
[17,]  9   19   17
[18,] 10   11    6
[19,]  3    2    2
[20,] 18   15    9
[21,] 11   18   11
[22,]  4   19    7
[23,]  3    9   19
[24,] 12    7   19
[25,]  5    5    2

将矩阵行值除以行最小值

使用应用函数将 M 的行值除以行最小值 -

例子

> M<-matrix(sample(1:20,75,replace=TRUE),ncol=3)
> M_new<-t(apply(M,1, function(x) x/min(x)))
> M_new
输出结果
          [,1]      [,2]     [,3]
[1,] 16.000000  1.000000 18.000000
[2,] 18.000000 12.000000  1.000000
[3,]  1.000000  1.583333  1.583333
[4,]  3.500000  1.000000  9.000000
[5,]  1.000000  1.400000  1.600000
[6,]  2.000000  1.000000  2.000000
[7,]  3.750000  3.500000  1.000000
[8,]  2.000000  1.000000 17.000000
[9,]  1.375000  1.500000  1.000000
[10,] 1.833333  3.166667  1.000000
[11,] 4.000000  1.000000  3.500000
[12,] 8.000000 14.000000  1.000000
[13,] 1.000000  3.800000  3.600000
[14,] 2.833333  2.333333  1.000000
[15,] 1.083333  1.000000  1.500000
[16,] 1.000000 19.000000 14.000000
[17,] 1.000000  2.111111  1.888889
[18,] 1.666667  1.833333  1.000000
[19,] 1.500000  1.000000  1.000000
[20,] 2.000000  1.666667  1.000000
[21,] 1.000000  1.636364  1.000000
[22,] 1.000000  4.750000  1.750000
[23,] 1.000000  3.000000  6.333333
[24,] 1.714286  1.000000  2.714286
[25,] 2.500000  2.500000  1.000000

猜你喜欢