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.3 注意
如果你想要生成随机数的结果可重复,参阅生成可重复的随机序列。