N <- 2000
n <- 400
datos <- data.frame(
ID = 1:2000,
Estrato = c(rep("E1",1000),
rep("E2",600),
rep("E3",400))
)
estratos <- data.frame(
Estrato = c("E1","E2","E3"),
N2 = c(1000,600,400)
)
estratos$n <- (estratos$N2/N)*n
estratos
## Estrato N2 n
## 1 E1 1000 200
## 2 E2 600 120
## 3 E3 400 80
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
set.seed(123)
muestra <- datos %>%
group_by(Estrato) %>%
sample_n(
size = c(200,120,80)[match(first(Estrato),
c("E1","E2","E3"))]
)
muestra
## # A tibble: 400 × 2
## # Groups: Estrato [3]
## ID Estrato
## <int> <chr>
## 1 415 E1
## 2 463 E1
## 3 179 E1
## 4 526 E1
## 5 195 E1
## 6 938 E1
## 7 818 E1
## 8 118 E1
## 9 299 E1
## 10 229 E1
## # ℹ 390 more rows
table(muestra$Estrato)
##
## E1 E2 E3
## 200 120 80