如何随机化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
以上是 如何随机化R中矩阵的行? 的全部内容, 来源链接: utcz.com/z/341311.html