Как создать случайный вектор с фиксированной длиной и фиксированной пропорцией двух значений? - PullRequest
0 голосов
/ 10 ноября 2019

Я хотел создать случайный вектор, который содержит только два возможных значения: «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

Кто-нибудь знает, почему я не получил точный% FEMALE и MALE в векторе x1? И как исправить код, чтобы получить точный%?

1 Ответ

3 голосов
/ 10 ноября 2019

Сначала создайте вектор с необходимым количеством значений, а затем 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 
...