如何随机化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

回到顶部