每次按照特定分布分配值时如何获得相同的结果

How to get the same result every time when allocating values following a specific distribution

我的数据包括邮政编码和医院。许多记录都缺少医院,我想在邮政编码中分配所有记录后将医院分配给该记录。假设在邮政编码 2211 中,医院 A 和 B 的分布是 0.3 对 0.7。此邮政编码中缺少医院的记录需要遵循相同的分布,并且每次我 运行 代码时都需要获得相同的结果。

我已经试过了:

sample(c("A","B"), nrow(df), replace=TRUE, prob=c(0.3,0.7)) 

这给出了预期的结果,但是当我再次 运行 代码时,记录级别的结果不同。我阅读了有关 set.seed() 的内容,但没有给出相同的输出。

我的一些数据:

  postal code hospital daydate
1         2211       NA       0
2         2211       NA       6
3         2211       NA       8
4         2211       NA      15
5         2211       NA      18
6         2211       NA      18
7         2211       NA      25
8         2211       NA      30
9         2211       NA      51
10        2211       NA      55
11        2211       NA      58
12        2211       NA      59
13        2211       NA      61
14        2211       NA      61
15        2211       NA      64
16        2211       NA      66
17        2211       NA      68
18        2211       NA      69

本例中有 18 条记录,因此 13 条记录需要到达医院 A,5 条记录需要到达医院 B。例如,记录 10 始终需要是 A 而不是第二次是 B。

我希望我的问题很清楚(我第一次在这里问问题)并且有人可以帮助我!提前致谢!

set.seed 应该是解决方案:

set.seed(0)
s1 <- sample(c("A","B"), 18, replace=TRUE, prob=c(0.3,0.7))
set.seed(0)
s2 <- sample(c("A","B"), 18, replace=TRUE, prob=c(0.3,0.7))
identical(s1, s2)
#[1] TRUE