有没有办法在不使用循环的情况下在R中生成具有正态分布随机值的数据集?每个条目都代表一个具有正态分布的独立随机变量。
答案 0 :(得分:24)
要创建N
个M
iid正常随机变量矩阵,请输入以下内容:
matrix( rnorm(N*M,mean=0,sd=1), N, M)
根据需要调整平均值和标准偏差。
答案 1 :(得分: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)
将生成一个矩阵,其中包含保存相关样本的列
答案 2 :(得分:1)
您可以使用:
replicate(NumbOfColumns,rnorm(NumbOfLines))
您可以将rnorm
替换为其他分配函数,例如runif
,以生成包含其他分布的矩阵。
答案 3 :(得分:-2)
注意:每个条目都是独立的。所以你不能避免使用for循环,因为你必须为每个自变量调用一次rnorm。如果你只是调用rnorm(n * m)来自同一随机变量的n * m个样本!