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

更新于:2021年11月9日

2K+ 次浏览

启动你的职业生涯

通过完成课程获得认证

开始学习
广告