如何用R语言生成10个0至1之间随机数且要求他们的和为1?

Python016

如何用R语言生成10个0至1之间随机数且要求他们的和为1?,第1张

x<-runif(10,min=0,max=1)#生成10个0到1的均匀分布

x<-x/sum(x)#每个随机数除以这十个数的总和

这样得到的10个随机数的和就是1了。

这里为了方便最初采用了0到1的均匀分布,实际上你可以采用任意的分布,只要将得到的十个数先平移至均为正数,再除以总和,就得到10个和为1的随机数。

当然,这10个数具体是什么分布就不讨论了。

具体步骤如下:

nrow<-10ncol<-10 #自己定矩阵的大小

matrix(nrow=nrow,ncol=ncol)

就会产生全是NA的矩阵了

题目是要构造4*5的A和B矩阵。先来构造A矩阵,A矩阵是将1-20按列输入。

1.首先我们了解下矩阵的matrix()函数形式。

matrix(data=NA,nrow=1,ncol=1,byrow=FALSE,dimnames=NULL)

其中参数data为数据向量,默认值为NA,当不输入该数据时,可生成一个初始矩阵,nrow为矩阵的函数,默认值为1。ncol为矩阵的猎术,默认值为1。byrow为螺距变量,取值为TRUE时,数据data按行放置,为FALSE时也就是默认值,data数据按列放置。dimnames则为矩阵的行和列的名称。