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