# NOT RUN {
library(surveysd)
library(laeken)
library(data.table)
eusilc <- surveysd:::demo.eusilc(n=4)
# create spit households
eusilc[,rb030split:=rb030]
year <- eusilc[,unique(year)]
year <- year[-1]
leaf_out <- c()
for(y in year) {
split.person <- eusilc[year==(y-1)&!duplicated(db030)&!db030%in%leaf_out,
sample(rb030,20)]
overwrite.person <- eusilc[year==(y)&!duplicated(db030)&!db030%in%leaf_out,
.(rb030=sample(rb030,20))]
overwrite.person[,c("rb030split","year_curr"):=.(split.person,y)]
eusilc[overwrite.person,
rb030split:=i.rb030split,on=.(rb030,year>=year_curr)]
leaf_out <- c(
leaf_out,
eusilc[rb030%in%c(overwrite.person$rb030,overwrite.person$rb030split),
unique(db030)])
}
# pid which are in split households
eusilc[,.(uniqueN(db030)),by=list(rb030split)][V1>1]
eusilc.new <- generate.HHID(eusilc, period = "year", pid = "rb030split",
hid = "db030")
# no longer any split households in the data
eusilc.new[,.(uniqueN(db030)),by=list(rb030split)][V1>1]
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab