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