set.seed()函数( 转)

本文详细解释了R语言中set.seed()函数的作用,通过实例演示如何使用该函数来确保随机数生成的一致性,这对于复现研究结果至关重要。

看了几个帖子,说得不是特别清楚,特重新描述如下:

 

set.seed()函数是为了保证你随机生成的随机数前后一致,看效果

首先,不设置该种子函数。

x=rnorm(10)
plot(x)
绘出的图如下:


重新运行一遍这两行,就是另外的图
x=rnorm(10)
plot(x)


为了在下次运行时,产生一样的随机数,就得使用set.seed()函数了,如下
set.seed(1)
x=rnorm(10)
plot(x)
画图如下:


那么此时,我们重复运行上面的代码
set.seed(1)
x=rnorm(10)
plot(x)



此时你得到的图是一样的


那么set.seed(1)换为set.seed(2)时还一样吗?我们运行下面程序

set.seed(2)
x=rnorm(10)
plot(x)

显然是不一样的,因此,set.seed()括号里面的参数可以是任意数字,是代表你设置的第几号种子而已,不会参与运算,是个标记而已。

### R语言 `set.seed` 函数使用方法 #### 设置伪随机数生成器的种子 为了确保每次运行程序时生成的随机数序列相同,从而让结果可重复再现,在R语言中可以通过调用`set.seed()`来实现这一目标[^3]。 ```r # 设定种子为123以便后续操作能够得到一致的结果 set.seed(123) ``` 此命令会初始化R使用的伪随机数发生算法的状态。当指定相同的参数值给`set.seed()`,之后执行涉及随机性的运算将会遵循同样的模式[^2]。 #### 结合其他函数一起工作 通常情况下,`set.seed()`会在涉及到随机抽样的地方之前被调用,比如创建服从特定分布的数据集或是打乱数据顺序等场景下: ```r # 创建一个正态分布样本并绘制直方图 set.seed(123) x <- rnorm(100, mean = 100, sd = 10) hist(x, breaks = 20) ``` 上述代码片段展示了如何利用设定好的种子去获取一组均值为100标准差为10的一百个数值,并将其可视化出来;如果再次运行这段代码而保持seed不变,则所获得图形应当完全一样[^4]。 另外值得注意的是改变传入`set.seed()`的不同整型参数也会相应地影响到后面产生的随机系列特性: ```r # 更改种子后重新抽取另一组不同的正态分布样本 set.seed(234) y <- rnorm(100, mean = 100, sd = 10) hist(y, breaks = 20) ``` 这里改变了初始状态(即新的种子),因此即使采用相同的统计特征构建新数组,其具体成员还是会有所区别。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值