创建多个随机数矩阵时出现问题

时间:2019-03-23 23:00:37

标签: r

我想制作一个3x3矩阵,其数字由间隔[0,1]上的均匀分布得出。我想做1000次。

我目前正在这样做:

D <- replicate(3, runif(3, 0, 1), simplify=TRUE) 
#This makes a 3x3 matrix with random numbers from
#uniform normal distribution on interval [0,1]

rep(D,times=1000)  

,但是该命令将创建一个包含9000个数字的列表,而不是1000个3x3矩阵。我该如何解决?

1 个答案:

答案 0 :(得分:2)

使用lapply,我们可以创建一个长度为1000的列表,其中列表中的每个元素都是所需的3x3矩阵:

set.seed(1234)
list_of_mats <- lapply(1:1000, function(x) matrix(runif(9), 3, 3))

例如,第八矩阵是:

list_of_mats[[8]]
#           [,1]       [,2]      [,3]
#[1,] 0.01374994 0.30809476 0.5645698
#[2,] 0.23902573 0.50854757 0.1214802
#[3,] 0.70649462 0.05164662 0.8928364