如何在R语言中随机化矩阵的行?
为了在R语言中随机化矩阵的行,我们可以使用 `sample` 函数结合 `nrow` 函数来获取随机的行,然后使用单方括号对矩阵进行子集选择。
例如,如果我们有一个名为 M 的矩阵,则可以使用以下命令对 M 的行进行随机化:
Random_rows<-sample(nrow(M)) and M[Random_rows,]
示例 1
下面的代码片段创建一个矩阵:
M1<-matrix(rnorm(40),ncol=2) M1
创建的矩阵如下:
[,1] [,2] [1,] -0.1519466 2.3807947 [2,] 0.2484261 0.4204072 [3,] -0.7457339 -3.1329862 [4,] 0.7760234 -0.2282981 [5,] -0.8466272 -1.4497825 [6,] 2.3825231 -1.5571171 [7,] 0.2485765 -0.4825909 [8,] 0.6356381 -0.6498445 [9,] -0.5413304 1.1162191 [10,] -0.7497836 -0.1187549 [11,] 0.9855236 0.6309653 [12,] 0.9829068 -0.7666931 [13,] -0.2415028 0.9425981 [14,] 0.3799880 1.0948588 [15,] -1.1123904 -0.2507432 [16,] -1.6995406 0.9193191 [17,] -0.7319311 -0.4822913 [18,] -0.2378776 0.4848352 [19,] 1.1436393 0.9658798 [20,] 0.3911035 -0.2250289
为了在M1中创建一个随机行的向量,请将以下代码添加到上面的代码片段中:
M1<-matrix(rnorm(40),ncol=2) Random_rows_1<-sample(nrow(M1)) Random_rows_1
输出
如果您将以上所有代码片段作为一个程序执行,则会生成以下输出:
[1] 10 20 18 19 14 16 13 1 12 9 3 6 5 11 4 17 2 15 7 8
为了随机化M1的行,请将以下代码添加到上面的代码片段中:
M1[Random_rows_1,]
输出
如果您将以上所有代码片段作为一个程序执行,则会生成以下输出:
[,1] [,2] [1,] -0.7497836 -0.1187549 [2,] 0.3911035 -0.2250289 [3,] -0.2378776 0.4848352 [4,] 1.1436393 0.9658798 [5,] 0.3799880 1.0948588 [6,] -1.6995406 0.9193191 [7,] -0.2415028 0.9425981 [8,] -0.1519466 2.3807947 [9,] 0.9829068 -0.7666931 [10,] -0.5413304 1.1162191 [11,] -0.7457339 -3.1329862 [12,] 2.3825231 -1.5571171 [13,] -0.8466272 -1.4497825 [14,] 0.9855236 0.6309653 [15,] 0.7760234 -0.2282981 [16,] -0.7319311 -0.4822913 [17,] 0.2484261 0.4204072 [18,] -1.1123904 -0.2507432 [19,] 0.2485765 -0.4825909 [20,] 0.6356381 -0.6498445
示例 2
下面的代码片段创建一个矩阵:
M2<-matrix(rpois(80,5),ncol=4) M2
创建的矩阵如下:
[,1][,2][,3][,4] [1,] 4 10 7 2 [2,] 7 5 6 2 [3,] 3 6 5 4 [4,] 5 5 4 8 [5,] 3 6 9 3 [6,] 6 5 10 9 [7,] 4 3 5 2 [8,] 5 3 9 4 [9,] 5 4 6 3 [10,] 4 1 2 3 [11,] 8 4 2 4 [12,] 3 4 3 8 [13,] 10 6 3 6 [14,] 9 8 8 2 [15,] 1 2 2 5 [16,] 3 4 5 3 [17,] 6 4 5 4 [18,] 6 2 3 5 [19,] 4 6 6 3 [20,] 6 5 4 4
为了在M2中创建一个随机行的向量,请将以下代码添加到上面的代码片段中:
M2<-matrix(rpois(80,5),ncol=4) Random_rows_2<-sample(nrow(M2)) Random_rows_2
输出
如果您将以上所有代码片段作为一个程序执行,则会生成以下输出:
[1] 7 20 4 19 1 11 16 9 3 17 8 2 18 15 13 14 6 5 12 10
为了随机化M2的行,请将以下代码添加到上面的代码片段中:
M2[Random_rows_2,]
输出
如果您将以上所有代码片段作为一个程序执行,则会生成以下输出:
[,1][,2][,3][,4] [1,] 4 3 5 2 [2,] 6 5 4 4 [3,] 5 5 4 8 [4,] 4 6 6 3 [5,] 4 10 7 2 [6,] 8 4 2 4 [7,] 3 4 5 3 [8,] 5 4 6 3 [9,] 3 6 5 4 [10,] 6 4 5 4 [11,] 5 3 9 4 [12,] 7 5 6 2 [13,] 6 2 3 5 [14,] 1 2 2 5 [15,] 10 6 3 6 [16,] 9 8 8 2 [17,] 6 5 10 9 [18,] 3 6 9 3 [19,] 3 4 3 8 [20,] 4 1 2 3
广告