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

按行最小值劃分矩陣行值

使用 apply 函式按行最小值劃分 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

更新時間:2021-08-13

84 次瀏覽

啟動您的 職業

完成課程以獲得認證

開始
廣告