# NOT RUN {
eusilc <- demo.eusilc(prettyNames = TRUE)
## draw sample without stratification or clustering
dat_boot <- draw.bootstrap(eusilc, REP = 10, weights = "pWeight",
period = "year")
## use stratification w.r.t. region and clustering w.r.t. households
dat_boot <- draw.bootstrap(
eusilc, REP = 10, hid = "hid", weights = "pWeight",
strata = "region", period = "year")
## use multi-level clustering
dat_boot <- draw.bootstrap(
eusilc, REP = 10, hid = "hid", weights = "pWeight",
strata = c("region", "age"), period = "year")
# create spit households
eusilc[, pidsplit := pid]
year <- eusilc[, unique(year)]
year <- year[-1]
leaf_out <- c()
for(y in year) {
split.person <- eusilc[
year == (y-1) & !duplicated(hid) & !(hid %in% leaf_out),
sample(pid, 20)
]
overwrite.person <- eusilc[
(year == (y)) & !duplicated(hid) & !(hid %in% leaf_out),
.(pid = sample(pid, 20))
]
overwrite.person[, c("pidsplit", "year_curr") := .(split.person, y)]
eusilc[overwrite.person, pidsplit := i.pidsplit,
on = .(pid, year >= year_curr)]
leaf_out <- c(leaf_out,
eusilc[pid %in% c(overwrite.person$pid,
overwrite.person$pidsplit),
unique(hid)])
}
dat_boot <- draw.bootstrap(
eusilc, REP = 10, hid = "hid", weights = "pWeight",
strata = c("region", "age"), period = "year", split = TRUE,
pid = "pidsplit")
# split households were considered e.g. household and
# split household were both selected or not selected
dat_boot[, data.table::uniqueN(w1), by = pidsplit][V1 > 1]
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab