21

有没有办法在不使用循环的情况下在 R 中生成具有正态分布随机值的数据集?每个条目将代表一个具有正态分布的独立随机变量。

4

4 回答 4

33

要创建iid 正态随机变量N的矩阵,请键入:M

matrix( rnorm(N*M,mean=0,sd=1), N, M) 

根据需要调整平均值和标准差。

于 2012-07-24T23:23:21.293 回答
2

让我们mu成为均值sigma向量和标准开发者向量

mu<-1:10
sigma<-10:1
sample.size<-100
norm.mat<-mapply(function(x,y){rnorm(x,y,n=sample.size)},x=mu,y=sigma)

将产生一个矩阵,其中包含相关样本的列

于 2012-07-24T22:57:42.863 回答
1

您可以使用:

replicate(NumbOfColumns,rnorm(NumbOfLines))

You can replace rnorm with other distribution function, for example runif, to generate matrices with other distributions.

于 2015-05-11T18:58:44.753 回答
-3

注意:每个条目都是独立的。所以你不能避免使用 for 循环,因为你必须为每个自变量调用一次 rnorm。如果你只是调用 rnorm(n*m) 那就是来自同一个随机变量的 n*m 个样本!

于 2013-04-11T18:43:54.390 回答