R语言学习笔记4-随机数的产生

1、均匀分布随机数

在R语言中,生成均匀分布随机数的函数是:runif()

基本语法:runif(n, min=0, max=1),n表示生成的随机数的数量,min表示均匀分布的下限,max表示均匀分布的上限;在默认状态下,min=0,max=1,也可以指定。

例1:

1
2
> runif(10) # 生成10个[0,1]上的均匀分布随机数
[1] 0.22640211 0.44554231 0.51034146 0.43492569 0.02381349 0.16912671 0.56014004 0.67121007 0.99790301 0.72515818

例2:

1
2
> runif(5,.5,3) # 生成5个均匀分布随机数,并指定其分布区间[0.5,3]
[1] 1.559970 2.113296 1.405775 2.280277 1.398960

2、正态分布随机数

在R语言中,生成正态分布随机数的函数是:rnorm()

基本语法:rnorm(n,mean=0,sd=1),其中,n表示随机数的数量,mean表示正太分布的均值,默认为0,sd表示正太分布的标准差,默认为1;

例3:

1
2
3
> x=rnorm(100) # 生成100个均值为0,标准差为1的正态分布随机数
> hist(x,prob=T,main="normal mu=0,sigma=1") # 作概率直方图
> curve(dnorm(x),add=T) # 添加正态分布的密度函数线

3、二项分布随机数

在R语言中,生成二项分布随机数的函数是:rbinom()

基本语法:rbinom(n,size,prob),n表示生成的随机数的数量(代表试验成功的次数,涵义解释参见《R语言学习笔记3-生成二项分布随机数》),size表示进行伯努利试验的次数,prob表示一次伯努利试验成功的概率。

例4:

1
2
> rbinom(20,100,.5)
[1] 52 53 45 52 43 53 56 47 53 51 53 51 50 51 48 51 48 48 51 52

4、指数分布随机数

在R语言中,生成指数分布随机数的函数是rexp()

基本语法:rexp(n,lamda=1),n表示生成的指数分布随机数的数量,lamda表示指数分布随机数的均值的倒数,即lamda=1/mean,默认为1,即默认生成均值为10的随机数。

例5:

1
2
3
> x=rexp(100) # 生成100个均值为1的指数分布随机数
> mean(x) # 查看均值,约为1
[1] 1.1335

例6:

1
2
3
4
5
6
7
8
> x=rexp(100,1/10) # 生成100个均值为10的指数分布随机数
> mean(x)
[1] 10.50919
> x=rexp(100,.1) # .1同1/10
> mean(x)
[1] 9.366332
> hist(x,prob=T,col=gray(.9),main="mean=10") # 作直方图
> curve(dexp(x,1/10),add=T) # 添加指数分布密度线

  • 本文作者:括囊无誉
  • 本文链接: R/R语言学习笔记4/
  • 版权声明: 本博客所有文章均为原创作品,转载请注明出处!
------ 本文结束 ------
坚持原创文章分享,您的支持将鼓励我继续创作!