如何从给定分布中模拟大小为n的m个随机样本,并使用R?

如何从给定分布中模拟大小为n的m个随机样本,并使用R?,r,R,我知道如何从标准的统计分布(比如指数分布)生成一个大小为n的随机样本。但是,如果我想生成m个大小为n的随机样本(即,m个维数为n的向量),我该怎么做?要通过m矩阵创建n,其中包含m大小为n的样本,您可以使用: x <- replicate(m, rnorm(n, ...)) 这会将x的i第th列放入v,它对应于i第th个样本。不过,只使用简单的for循环可能更容易/更快: for(i in 1:m){ name <- paste("V", i, sep = "") assi

我知道如何从标准的统计分布(比如指数分布)生成一个大小为n的随机样本。但是,如果我想生成m个大小为n的随机样本(即,m个维数为n的向量),我该怎么做?

要通过
m
矩阵创建
n
,其中包含
m
大小为
n
的样本,您可以使用:

x <- replicate(m, rnorm(n, ...))
这会将
x
i
第th列放入
v
,它对应于
i
第th个样本。不过,只使用简单的for循环可能更容易/更快:

for(i in 1:m){
  name <- paste("V", i, sep = "")
  assign(name, rnorm(n, ...))
}
for(1:m中的i){

名称
replicate(5,rnorm(3))
1。那么您希望它位于矩阵或数据帧(或者列表)中吗2.你有非常大的样本吗?/你很在乎它有多快吗?这个答案很好,只是它似乎鼓励创建顺序命名的向量。最好将它们保存在它们进入的矩阵或列表中(如果可以在事后做一些事情,使它们具有不同的长度)而不是
将它们分配给更难使用的顺序命名变量。重申@Gregor的观点。不需要混乱名称空间;另一种方法是执行
as.data.frame(replicate(m,rnorm(n))
将其存储为数据集(或者更好的是,
库(data.table);setDF(replicate(m,rnorm(n))
)@MichaelChirico,但在大多数情况下,它可能最好作为一个
矩阵
,只是一个
复制
输出。嗯……老实说,我只是做
rnorm(m*n)
,在这种情况下添加维度。
for(i in 1:m){
  name <- paste("V", i, sep = "")
  assign(name, rnorm(n, ...))
}