使用R生成具有iid正态随机变量的矩阵
有没有一种方法可以在不使用循环的情况下生成R中具有正态分布随机值的数据集?每个条目将代表一个正态分布的独立随机变量。让使用R生成具有iid正态随机变量的矩阵,r,random,normal-distribution,R,Random,Normal Distribution,有没有一种方法可以在不使用循环的情况下生成R中具有正态分布随机值的数据集?每个条目将代表一个正态分布的独立随机变量。让mu成为均值向量,sigma成为标准dev的向量 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) mu通过iid正态随机变量的M矩阵创建N,类型如下: matrix( rnorm(N*M
mu
成为均值向量,sigma
成为标准dev的向量
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)
mu通过iid正态随机变量的M
矩阵创建N
,类型如下:
matrix( rnorm(N*M,mean=0,sd=1), N, M)
根据需要调整平均值和标准偏差 注意:每个条目都是独立的。所以不能避免使用for循环,因为必须为每个自变量调用一次rnorm。如果你只调用rnorm(n*m),那就是来自同一个随机变量的n*m个样本 您可以使用:
replicate(NumbOfColumns,rnorm(NumbOfLines))
您可以使用其他分布函数替换rnorm
,例如runif
,以生成具有其他分布的矩阵。matrix(rnorm(n*p),n)
对于具有iid$\mathcal n(0,1)$条目的$n\times p$矩阵,只要提问者理解n是行数,M是列数,这样他就会得到很好的服务answer@DWin,同意。这是在任何上下文中引用矩阵时的常规符号,对吗?我不太确定。我确实知道,人们有时会对这样一个事实表示惊讶,即R的矩阵按列主顺序填充,并调用matrix
,除非byrow=TRUE。我认为不同语言的矩阵约定可能存在差异。对于matrix
,您可以指定nrow
或ncol
中的一种,这是错误的,而且会让人困惑rnorm(n*m)
确实生成了n*m
独立的随机样本,完全符合OP的要求。