如何生成固定长度和固定比例的两个值的随机向量?

How to generate a random vector with fixed length and fixed proportion of two values?

我想生成一个只包含两个可能值的随机向量:"FEMALE" 和 "MALE"。我还希望向量具有固定长度和每个值的 EXACT 固定百分比。

我尝试了下面的代码。它运行良好,只是没有给我确切的百分比

> x1 <- sample(c("FEMALE", "MALE"), size = 19749, replace = TRUE, prob=c(0.538, 0.462))

> length(x1)
[1] 19749

> x2 <- table(x1)

> prop.table(x2)
x1
   FEMALE      MALE 
0.5410401 0.4589599

有人知道为什么我没有在向量 x1 中得到 FEMALE 和 MALE 的确切百分比吗?还有,如何修复代码以获得准确的百分比?

首先创建具有所需数量值的向量,然后sample

n = 19749
x1 <- sample(c(rep("FEMALE", .538 * n),
               rep("MALE", .462 * n)))
prop.table(table(x1))
x1
#   FEMALE      MALE 
#0.5379785 0.4620215