R:sample函数重复相同的结果

R:sample函数重复相同的结果,r,random,sample,mersenne-twister,R,Random,Sample,Mersenne Twister,我在sample()中遇到了一些非常奇怪的事情。如果在会话开始时(在RStudio或R中)运行以下行5次,我将得到以下结果 sample(letters,5,replace=TRUE) [1] "b" "y" "d" "p" "n" [1] "v" "n" "i" "s" "s" [1] "d" "q" "a" "m" "x" [1] "w" "s" "u" "h" "e" [1] "b" "y" "g" "s" "e" 但是如果我重新启动控制台,并在新会话开始时运行它5次,我会以某种方式得到

我在
sample()
中遇到了一些非常奇怪的事情。如果在会话开始时(在RStudio或R中)运行以下行5次,我将得到以下结果

sample(letters,5,replace=TRUE)
[1] "b" "y" "d" "p" "n"
[1] "v" "n" "i" "s" "s"
[1] "d" "q" "a" "m" "x"
[1] "w" "s" "u" "h" "e"
[1] "b" "y" "g" "s" "e"
但是如果我重新启动控制台,并在新会话开始时运行它5次,我会以某种方式得到相同的结果——每次都是如此。
sample()?我应该怎么做才能得到不重复的结果呢

set.seed(123)
> sample(letters,5,replace=TRUE)
[1] "h" "u" "k" "w" "y"
> sample(letters,5,replace=TRUE)
[1] "b" "n" "x" "o" "l"
> sample(letters,5,replace=TRUE)
[1] "y" "l" "r" "o" "c"
> sample(letters,5,replace=TRUE)
[1] "x" "g" "b" "i" "y"
> sample(letters,5,replace=TRUE)
[1] "x" "s" "q" "z" "r"
如果启动一个新会话并更改
set.seed
值,将得到不同的结果

> set.seed(456)

> sample(letters,5,replace=TRUE)
[1] "c" "f" "t" "w" "u"
> sample(letters,5,replace=TRUE)
[1] "i" "c" "h" "g" "k"
> sample(letters,5,replace=TRUE)
[1] "j" "f" "t" "v" "p"
> sample(letters,5,replace=TRUE)
[1] "q" "v" "l" "s" "h"
> sample(letters,5,replace=TRUE)
[1] "e" "s" "x" "l" "v"

希望有帮助。

您是否在每次R会话开始时保存并加载工作区?或者由于某种原因,您的
.Rprofile
文件中是否有
set.seed()
调用?我没有保存我的工作区,而且我从未有意使用任何
set.seed()
调用。(我也不认为我这样做是偶然的,因为我很少使用R,但它与RStudio有相同的问题,这是我专门使用的。)在代码的开头使用
rm(.Random.seed)
。请参阅。仍然有可能是工作区加载导致了这种情况,我认为,如果您曾经保存过您的工作区,它将在R加载时自动加载。检查主目录中名为
.Rdata
的文件并将其删除(只要您确定不需要它),谢谢您的建议,尽管我看到任何给定的种子在每次运行时仍会产生相同的结果。Juan运行
rm(.Random.seed)
的解决方案似乎对我有效,因为结果永远不会重复。@dasf我不清楚“相同的结果”是什么意思。通过设置一个种子,您将期望该种子得到相同的结果。我的意思是,如果我在会话开始时运行代码,我将得到
bydpn
vniss
如果我再次运行该代码,
dqamx
如果再次运行。。。如果我退出并重新启动控制台并重复相同的过程,我将得到
bydpn
vniss
dqamx
。我以前从未处理过播种问题,直到现在才意识到这个问题。