R 如何停止相同的';随机';是否跨不同的计算机选择行?

R 如何停止相同的';随机';是否跨不同的计算机选择行?,r,random,sample,R,Random,Sample,我有一些需要多次模拟的代码,我希望能在不同的计算机上运行。每个模拟都需要识别数据的随机子集,然后在其上运行分析。当我尝试同时在不同的计算机上运行此操作时,我会注意到为每个模拟选择了相同的行。因此,如果我运行3个模拟,每个模拟都会在不同的计算机上识别相同的“随机”样本。我不知道为什么会这样,有人能建议一些代码来解决这个问题吗 我在下面的dplyr中展示了sample_n函数,但是在Base R中使用“sample”函数也发生了同样的事情。提前感谢 library(dplyr) explanator

我有一些需要多次模拟的代码,我希望能在不同的计算机上运行。每个模拟都需要识别数据的随机子集,然后在其上运行分析。当我尝试同时在不同的计算机上运行此操作时,我会注意到为每个模拟选择了相同的行。因此,如果我运行3个模拟,每个模拟都会在不同的计算机上识别相同的“随机”样本。我不知道为什么会这样,有人能建议一些代码来解决这个问题吗

我在下面的dplyr中展示了sample_n函数,但是在Base R中使用“sample”函数也发生了同样的事情。提前感谢

library(dplyr)
explanatory <- c(1,2,3,4,3,2,4,5,6,7,8,5,4,3)
response <- c(3,4,5,4,5,6,4,6,7,8,6,10,11,9)

A <- data.frame(explanatory,response)
B <- data.frame(explanatory,response)
C <- data.frame(explanatory,response)

for(i in 1:3)
{
 Rand_A = sample_n(A,8)
 Rand_B = sample_n(B,8)
 Rand_C = sample_n(C,8)
 Rand_All = rbind(Rand_A, Rand_B,Rand_C)
}
库(dplyr)

解释性您可以按照brb的建议分别为每台计算机设置种子。通过将种子设置为计算机的ip地址,也可以自动实现这一点,这样就无需为每台计算机编辑脚本。使用
ipify
的一个实现:

库(devtools)
安装github(“gregce/ipify”)
图书馆(ipify)
set.seed(如.numeric(gsub(“[.]”,“”,get_ip()))

您是否在代码的前面部分设置了种子?不,我目前没有。在模拟之前,我需要这样做吗?我该怎么做呢?如果你没有设置种子,我觉得奇怪的是,你选择的行与使用计算机时钟进行种子选择的行相同。无法解释。你只是为每台电脑设定不同的种子,怎么样?设置种子使用:Set.seed(123)。每次运行的数字不同…这可能就是为什么我几乎在同一时间(10秒内)启动模拟。种子可能是一个很好的解释,我现在就试试,谢谢。如果这样做有效,我会推荐并让你回答下面的问题,这样我就可以勾选这个似乎已经成功了。谢谢@brb-请随时在下面发布答案:)