我的数据由邮政编码和医院组成。许多记录都有缺失的医院,我想在邮政编码中分发所有记录后将医院分配给此记录。假设在Postcal代码2211中,医院A和B的分布是0.3对0.7。此Postcal代码中缺少医院的记录需要遵循相同的分布,并需要在每次运行代码时获得相同的结果。
我已经试过了:
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。
我希望我的问题是清楚的(我第一次在这里问问题),并且有人可以帮助我!提前谢谢你!
发布于 2019-07-17 15:15:32
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] TRUEhttps://stackoverflow.com/questions/57070368
复制相似问题