2.1 生成随机数

2.1.1 问题

你想要生成随机数。

2.1.2 方案

要生成均匀分布的随机数,可以使用 runif() 函数,它的默认范围是从 0 到 1。

  1. runif(1)
  2. #> [1] 0.246
  3. # 得到 4 个数字的向量
  4. runif(4)
  5. #> [1] 0.1342 0.8996 0.6340 0.4691
  6. # 得到 3 个范围在 0 到 100 的随机数向量
  7. runif(3, min = 0, max = 100)
  8. #> [1] 54.36 21.23 57.91
  9. # 得到 3 个范围在 0 到 100 的整数 使用 max=101
  10. # 因为它永远不可能等于 101,这里利用 floor
  11. # 函数实现向下取整数
  12. floor(runif(3, min = 0, max = 101))
  13. #> [1] 46 22 28
  14. # 以下方式得到的结果一样
  15. sample(1:100, 3, replace = TRUE)
  16. #> [1] 43 73 6
  17. # 生成无重复的随机整数
  18. sample(1:100, 3, replace = FALSE)
  19. #> [1] 97 85 19

要生成服从正态分布的数字,使用 rnorm() 函数,该函数默认均值是 0,标准差是 1。

  1. rnorm(4)
  2. #> [1] -0.49078 -0.01156 1.64095 -0.45335
  3. # 使用不同的均值和标准差
  4. rnorm(4, mean = 50, sd = 10)
  5. #> [1] 47.12 44.02 40.43 50.66
  6. # 通过直方图检查分布是否正确
  7. x <- rnorm(400, mean = 50, sd = 10)
  8. hist(x)

2.1 生成随机数 - 图1

2.1.3 注意

如果你想要生成随机数的结果可重复,参阅生成可重复的随机序列