如何在R中从矩阵中抽取随机样本?
要在R中从矩阵中抽取随机样本,我们可以简单地使用sample函数,如果样本大小大于矩阵中的元素数量,则将使用replace=TRUE参数。
例如,如果我们有一个名为M的矩阵,包含100个元素,我们想从中抽取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
广告
数据结构
网络
关系型数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP