2.1 生成随机数

2.1 生成随机数

2.1.1 问题

你想要生成随机数。

2.1.2 方案

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

runif(1)
#> [1] 0.246

## 得到 4 个数字的向量
runif(4)
#> [1] 0.1342 0.8996 0.6340 0.4691

## 得到 3 个范围在 0 到 100 的随机数向量
runif(3, min = 0, max = 100)
#> [1] 54.36 21.23 57.91

## 得到 3 个范围在 0 到 100 的整数 使用 max=101
## 因为它永远不可能等于 101,这里利用 floor
## 函数实现向下取整数
floor(runif(3, min = 0, max = 101))
#> [1] 46 22 28

## 以下方式得到的结果一样
sample(1:100, 3, replace = TRUE)
#> [1] 43 73  6

## 生成无重复的随机整数
sample(1:100, 3, replace = FALSE)
#> [1] 97 85 19

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

rnorm(4)
#> [1] -0.49078 -0.01156  1.64095 -0.45335

## 使用不同的均值和标准差
rnorm(4, mean = 50, sd = 10)
#> [1] 47.12 44.02 40.43 50.66

## 通过直方图检查分布是否正确
x <- rnorm(400, mean = 50, sd = 10)
hist(x)

2.1 生成随机数 - 图1

2.1.3 注意

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