我的数据包括邮政编码和医院。许多记录缺少医院,我想在邮政编码中分配所有记录后将医院分配给该记录。假设在邮政编码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。
我希望我的问题很清楚(我第一次在这里问问题),希望有人可以帮助我!预先谢谢你!
答案 0 :(得分:1)
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