R的几个基本随机函数

R的几个基本随机函数及其简单的用法示例。

均匀分布函数(Uniform distribution)

这些函数提供从最小到最大分布区间的分布信息。dunif显示分布密度,punif显示分布函数,qunif显示分位函数,runif产生随机均匀分布数。这些函数的基本使用方法如下:

dunif(x, min = 0, max = 1, log = FALSE)
punif(q, min = 0, max = 1, lower.tail = TRUE, log.p = FALSE)
qunif(p, min = 0, max = 1, lower.tail = TRUE, log.p = FALSE)
runif(n, min = 0, max = 1)

min和max为分布的上下限,默认值为0和1的区间。一些例子如:

runif(5,0,1) #生成5个[0,1]的均匀分布随机数
## [1] 0.8595680 0.3418599 0.1135102 0.5597175 0.2534031
runif(5) #类似的
## [1] 0.08670786 0.63087047 0.05647944 0.97971159 0.94352527
u<- runif(20)
punif(u) #== u
##  [1] 0.420496700 0.478517767 0.119292442 0.898924229 0.658871995
##  [6] 0.798600780 0.752892289 0.496725389 0.624111130 0.238024854
## [11] 0.749184874 0.445463310 0.309724865 0.450483843 0.328881998
## [16] 0.001545778 0.547605451 0.824571170 0.140717338 0.527903193
dunif(u) #== 1
##  [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
var(runif(10000)) #- ~ = 1/12 = .08333
## [1] 0.08408081

正态分布随机数

正态分布随机数的函数rnorm,使用方法是:

rnorm(n, mean = 0, sd = 1)

其中n表示生成随机数的数量,mean是正态分布的均值,默认为0,sd是正态分布的标准差,默认为1.例如:

x<- rnorm(100)
hist(x, prob=T, main="normal mu=0, sigma=1")
curve(dnorm(x),add=T)

二项式随机分布数

该函数为rbinom,使用的句法是如下,n表示生成的随机数数量,size表示试验的次数,prob表示一次试验成功的概率。

rbinom(n, size, prob)

使用的例子如下:

par(mfrow=c(1,3)) 
p=0.25 
for( n in c(10,20,50)) 
{   x=rbinom(100,n,p) 
   hist(x,prob=T,main=paste("n =",n)) 
   xvals=0:n 
   points(xvals,dbinom(xvals,n,p),type="h",lwd=3) 
} 

指数分布随机数

指数分布随机数的函数是rexp,其基本用法如下,n表示生成随机数的个数,lamda=1/mean。

rexp(n, lamda=1)

使用举例如下:

x<-rexp(100,1/10)     # 生成100个均值为10的指数分布随机数
hist(x,prob=T,col=gray(0.9),main="Random numbers with mean of 10") 
curve(dexp(x,1/10),add=T)  #添加指数分布密度线

对数正态分布随机数

具体的函数是rlnorm,使用用法如下,meanlog和sdlog是取对数后的平均数和方差。

rlnorm(n, meanlog=0, sdlog=1)

使用举例如下:

x<-rlnorm(100)
hist(x,prob=T)
curve(dlnorm(x),add=T)


除非特别声明,文章均为牛会飞的博客原创,遵循署名-非商业使用-相同方式共享授权协议
转载请注明出处: https://blogfei.com/some-random-functions-of-r/

暂无评论