R语言初级教程(17): 随机数、随机抽样

2020-06-17 00:00:00 函数 随机数 抽样 抽取 种子

在很多统计分析中,随机化是一个非常重要的环节。对于从各种概率分布(离散和连续分布)产生随机数的方法将在《R统计学》专题详细介绍。这篇博客只是简要地介绍R中的随机化,主要介绍两个非常重要的函数:set.seed()sample()函数。

1. set.seed()函数

在调试(debugging)程序时,如果能够保证前后两次的随机数一致,常常对程序的调试有很大帮助。另外,在做展示的时候,结果的可重复性也是很重要。 在R中,我们可以用set.seed()函数来实现这个功能。

set.seed()函数用于设定随机数种子,一个特定的种子可以产生一个特定的伪随机序列。这个函数的主要作用是确保结果具有重复性,如果不设定种子,生成的随机数将无法重现。来看个例子:

> rnorm(6)    ##随机生成6个随机数 
[1]  0.4609162 -1.2650612 -0.6868529 -0.4456620  1.2240818  0.3598138
> rnorm(6)    ##再次随机生成6个随机数 
[1]  0.4007715  0.1106827 -0.5558411  1.7869131  0.4978505 -1.9666172

## 上面两个随机数序列不一样

> set.seed(123)  ##设定种子
> x <- rnorm(6)    ##在设定种子的前提下生成6个随机数
> x
[1] -0.56047565 -0.23017749  1.55870831  0.07050839  0.12928774  1.71506499

> set.seed(123)
> y <- rnorm(6)
> y
[1] -0.56047565 -0.23017749  1.55870831  0.07050839  0.12928774  1.71506499

> x==y   ##随机序列x和y完全一致
[1] TRUE TRUE TRUE TRUE TRUE TRUE

相关文章