如何从R中的矩阵中随机抽取样本?

要从 R 中的矩阵中随机抽取样本,我们可以简单地使用 sample 函数,如果样本大小大于矩阵中元素的数量,则将使用 replace=TRUE 参数。

例如,如果我们有一个名为 M 的矩阵,其中包含 100 个元素,并且我们想从 M 中采样 200 个元素,那么我们可以使用下面给出的命令 -

sample(M,200,replace=TRUE)

示例 1

以下代码段创建了一个矩阵 -

M1<-matrix(rpois(40,2),ncol=2)
M1

创建以下矩阵 -

    [,1] [,2]
[1,]  4   1
[2,]  2   2
[3,]  1   1
[4,]  1   1
[5,]  3   3
[6,]  3   3
[7,]  0   1
[8,]  6   2
[9,]  2   3
[10,] 3   0
[11,] 2   1
[12,] 2   0
[13,] 2   1
[14,] 3   2
[15,] 4   1
[16,] 2   5
[17,] 2   0
[18,] 5   1
[19,] 1   2
[20,] 2   1

要从矩阵 M1 中采样 20 个元素,请将以下代码添加到上述代码段中 -

M1<-matrix(rpois(40,2),ncol=2)
sample(M1,20)
输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

[1] 1 6 1 3 5 2 2 3 0 3 3 4 1 2 3 2 2 1 5 2

示例 2

以下代码段创建了一个矩阵 -

M2<-matrix(rnorm(40),ncol=2)
M2

创建以下矩阵 -

        [,1]          [,2]
[1,]   0.48397719  -0.3434391
[2,]  -1.13421796  -0.3913274
[3,]   1.05965857  -1.0989064
[4,]   1.23304607  -1.3435612
[5,]   1.77637786   0.7310268
[6,]   0.41760502   1.3260546
[7,]  -0.08124738   0.8677471
[8,]  -0.15993339   0.1359703
[9,]  -0.82723524  -0.1186969
[10,]  1.41121197   0.0248495
[11,]  0.48756826   1.3339764
[12,] -0.02805691  -1.2450467
[13,]  0.55314428   0.8207469
[14,] -0.47900431   0.3231949
[15,] -0.02465099   0.4216422
[16,] -0.81648466   0.3326057
[17,] -0.97571912  -0.7905656
[18,]  0.51536039  -0.4992937
[19,] -0.70616764  -1.0087116
[20,]  0.80158965  -1.0430299

要从矩阵 M2 中采样 50 个元素,请将以下代码添加到上述代码段中 -

M2<-matrix(rnorm(40),ncol=2)
sample(M2,50,replace=TRUE)
输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

[1] -1.34356116 1.23304607 1.05965857 -0.82723524 -0.11869686 -0.11869686
[7] 0.33260571 -0.82723524 0.13597027 -1.13421796 1.33397641 1.32605457
[13] 0.73102677 1.77637786 0.42164215 1.77637786 0.42164215 -0.82723524
[19] -0.47900431 0.51536039 -1.09890635 -0.39132740 -1.34356116 1.32605457
[25] 1.77637786 -1.24504668 0.02484950 -0.82723524 0.73102677 -0.08124738
[31] 0.55314428 -0.97571912 -0.97571912 0.48397719 -0.02805691 1.32605457
[37] 0.82074690 -0.02465099 -1.13421796 0.55314428 0.55314428 1.41121197
[43] 0.42164215 -1.24504668 -1.00871161 0.82074690 -0.79056563 0.48756826
[49] 0.86774712 1.33397641

示例 3

以下代码段创建了一个矩阵 -

M3<-matrix(rpois(40,10),ncol=2)
M3

创建以下矩阵 -

     [,1] [,2]
[1,]   7   9
[2,]  14   8
[3,]  11   5
[4,]  11   8
[5,]   9   8
[6,]   6   9
[7,]  12  12
[8,]  17   5
[9,]  14   8
[10,] 13  11
[11,] 11   5
[12,] 11  13
[13,] 14  10
[14,] 12  15
[15,] 11  13
[16,] 11   7
[17,] 12   8
[18,] 11  11
[19,] 12  10
[20,]  6   9

要从矩阵 M3 中采样 50 个元素,请将以下代码添加到上述代码段中 -

M3<-matrix(rpois(40,10),ncol=2)
sample(M3,50,replace=TRUE)
输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

[1] 14 8 15 17 9 9 8 12 11 9 6 10 14 10 6 8 9 9 14 13 11 5 8 11 11
[26] 12 9 9 11 11 11 5 11 11 6 13 13 6 12 11 17 12 11 11 12 10 11 11 10 12

猜你喜欢