如何在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

以上是 如何在R中按行最小值划分矩阵行? 的全部内容, 来源链接: utcz.com/z/331834.html

回到顶部