本节主要介绍了几个随机数生成函数。

sample函数

> sample(1:6, 10, replace = TRUE)
 [1] 5 4 3 2 6 1 3 2 4 4
> sample(1:6, 10, replace = FALSE)
Error in sample.int(length(x), size, replace, prob) : 
  cannot take a sample larger than the population when 'replace = FALSE'
> sample(1:20, 10)
 [1] 17 12  8  6  3 13 15 16 19 18
> flips <- sample(c(0, 1), 100, replace = TRUE, prob = c(0.3, 0.7))
> flips
  [1] 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 1 0 1
 [84] 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1
 > sum(flips)
[1] 75

replace参数表示有放回采样,即采样过的数字,在下一次可能还会采样到,prob=c(0.3, 0.7)表示采样0的概率是0.3,采样1的概率是0.7。

rbinom函数

 > flips2 <- rbinom(100, size=1, prob = 0.7)
 > flips2
  [1] 1 1 1 1 0 1 1 1 0 0 0 0 1 0 1 1 1 0 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
 [84] 1 0 1 1 1 0 0 1 0 1 1 1 1 0 1 1 1
> sum(flips2)
[1] 71

rbinom是生成服从多项式分布的随机数, 第一个参数100是采样的次数, size的采样的范围,为1,代表在0~1之间采样,如果是100,就是0~100,后面的prob表示1的采样概率。

rnorm函数

> rnorm(10)
 [1]  0.08586584 -0.53955607  0.27257112  0.75923112 -1.20822757 -0.58315942  0.01739660 -0.19339885 -1.78293389 -1.42738715
> rnorm(10, mean = 100, sd = 25)
 [1]  92.25129  79.72832 128.43447 126.73342 111.29187 117.49374  78.45989 119.11619  97.62143  54.33558

rnorm是正太分布

rpois函数

> rpois(5, lambda = 10)
[1]  8 11 10 10  7
> my_pois <- replicate(100, rpois(5, 10))
> my_pois
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] 
[1,]   12   16    9    7    8   11   12   11    7    10 
[2,]   13   18   10    8   11   14    5    7    9    11 
[3,]    8   11    7    9   18   11   12    8   10    11 
[4,]    7   11    8    8   11    9   10   15   11    11 
[5,]    8   12    8    6    9   10    6    9   10    10  
... #节省篇幅,我省略了
      [,95] [,96] [,97] [,98] [,99] [,100]
[1,]    10    12    13     5    10      9
[2,]    11     8    12    10     6     13
[3,]     9    12     8    10     7     14
[4,]     3    14     4     9    18      9
[5,]    10     8     7    16    11     10
> cm <- colMeans(my_pois)
> hist(cm) # 如图所示

hist

rpois是泊松分布

results matching ""

    No results matching ""